Separadores de la Salida AWK

Como se mencionó anteriormente, una sentencia print contiene una lista de items, separados por comas. En la salida, los items son separados normalmente por simples espacios en blanco. Pero esto no tiene por que ser así; el espacio es solamente el separador por defecto. Puedes especificar cualquier cadena de caracteres para usarla como el separador de campos de salida fijando la variable implícita OFS. El valor inicial de esta variable es la cadena “ “.

La salida completa de una sentencia print se le llama registro de salida. Cada sentencia print imprime un registro de salida y después imprime una cadena llamada el separador de registros de salida. La variable implícita ORS determina esta cadena. El valor inicial de la variable es la cadena “\n’ o lo que es lo mismo el carácter newline, por lo que, normalmente cada sentencia print crea una línea distinta.
Puedes cambiar como se separan los campos y registros de salida, asignándoles nuevos valores a las variables OFS y/o ORS. La sitio normal para hacer esto es en la regla BEGIN, de modo que tomen sus valores antes de que se procese ninguna entrada. También podrías hacer esto con asignaciones en la línea de comando, antes de los nombres de tus ficheros de entrada.

El siguiente ejemplo imprime el primer y segundo campo de cada registro de entrada separados por un punto y coma, añadiéndole una línea en blanco adicional después de cada registro en la salida:

awk 'BEGIN { OFS = ";"; ORS = "\n\n" }
{ print $1, $2 }' Lista-BBS

Si el valor de ORS no contiene un carácter newline, toda tu salida se generará a una única línea, a menos que pongas saltos de línea de alguna otra forma.

Publicar un comentario

0 Comentarios