¿Cómo se le dice a awk que use un #
carácter en sí mismo en una línea como separador de registros? El problema es que no se puede decir RS="^#$"
porque ^
coincide con el comienzo del archivo, no con el comienzo de una línea, y RS="#\n"
tampoco funciona porque coincide con los #
caracteres que no están al principio de una línea.
$ data='#
first record, first field
first record, second field
#
second record, first field#
second record, second field
'
Luego imprima el primer campo de cada registro, usando RS="#\n"
:
$ printf "%s" "$data" | awk '
BEGIN { RS="#\n"; FS="\n" }
/./ {print $1}
'
first record, first field
second record, first field
second record, second field
La última línea está mal porque no es el primer campo sino el segundo. El resultado previsto fue
first record, first field
second record, first field#
1
Podrían estar ustedes también proporcionan un ejemplo de la salida que necesita
—
roaima
¿Así se ven tus datos
—
Skaperen
line one#line two#line three
?
y
—
Skaperen
RS="#"
hace que
@Skaperen no, los datos se ven
—
Ernest A
#\nrecord one\n#\nrecord two
y cada registro consta de múltiples \n
campos separados.
RS='#\n'
debe trabajar que yo sepa - a pesar de que tratará la inicial #
como terminación de un registro vacío (es decir, todos los NR
valores serán "off" por uno)