Registros de múltiples líneas AWK

En algunas bases de datos, una sola línea no puede guardar convenientemente la información de un registro.
En tales casos, puedes usar registros de líneas múltiples.

El primer paso para hacer esto es elegir el formato de tus datos: cuando los registros no vienen definidos como líneas simples, ¿cómo quieres definirlos? ¿qué debería separar los registros?
Una técnica es usar un carácter inusual o cadena para separar los registros. Por ejemplo, podrías usar el carácter formfeed (escrito ‘\f’ en awk, como en C) para separarlos, haciendo que cada registro fuese una página del fichero. Para hacer esto, simplemente fija la variable RS a “\f” (una cadena que contenga el carácter formfeed) Cualquier otro carácter podría ser usado igualmente, siempre y cuando dicho carácter nunca forme parte de los datos posibles de un registro.

Otra técnica es tener registros separados por líneas en blanco. Como dispensación especial, una cadena nula como valor de RS indica que los registros estarán separados por una o más líneas en blanco. Si le das a la variable RS el valor cadena nula, un registro siempre acaba en la primera línea en blanco que encuentra. Y el siguiente registro no comienza hasta que no se encuentra la siguiente línea que no sea una línea en blanco – no importa cuantas líneas en blanco aparezcan en una fila, son consideradas como un único separador de registro.

El segundo paso es separar los campos del registro. Una forma para hacer esto es poner cada campo en una línea por separado: para hacer esto, fija la variable FS a la cadena “\n”. (Esta expresión regular simple concuerda con  un simple carácter newline).

Otra idea es dividir cada línea en campos de la forma normal. Esto ocurre por defecto como resultado de una característica especial: cuando RS se fija a la cadena nula, el carácter newline siempre actúa como un separador de campo. Esto es una adición a cuales quiera separaciones de campos resultantes de FS.

Publicar un comentario

0 Comentarios