Come dici a awk di usare un #personaggio da solo in una riga come separatore di record? Il problema è che non puoi dire RS="^#$"perché ^corrisponde all'inizio del file, non all'inizio di una riga e RS="#\n"non funziona neanche perché corrisponde a #caratteri che non sono all'inizio di una riga.
$ data='#
first record, first field
first record, second field
#
second record, first field#
second record, second field
'
Quindi stampare il primo campo di ciascun record, utilizzando 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
L'ultima riga è errata perché non è il primo campo ma il secondo. L'output previsto era
first record, first field
second record, first field#
line one#line two#line three?
RS="#"cosa fa?
#\nrecord one\n#\nrecord twoe ogni record è costituito da più \ncampi separati.
RS='#\n'dovrebbe funzionare afaik - anche se tratterà l'iniziale #come terminare un record vuoto (cioè tutti i NRvalori saranno "off" di uno)