Как вы говорите awk использовать #символ в строке как разделитель записей? Проблема в том, что вы не можете сказать, RS="^#$"потому что ^соответствует началу файла, а не началу строки, и RS="#\n"не работает, потому что он соответствует #символам, которые не находятся в начале строки.
$ data='#
first record, first field
first record, second field
#
second record, first field#
second record, second field
'
Затем напечатайте первое поле каждой записи, используя 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
Последняя строка неверна, потому что это не первое поле, а второе. Предполагаемый результат был
first record, first field
second record, first field#
1
Не могли бы вы также привести пример
—
нужного
так ваши данные выглядят как
—
Skaperen
line one#line two#line three?
а
—
Skaperen
RS="#"чем занимается?
@Skaperen нет, данные выглядят так,
—
Эрнест А
#\nrecord one\n#\nrecord twoи каждая запись состоит из нескольких \nразделенных полей.
RS='#\n'должен работать afaik - хотя он будет трактовать начальную #как завершение пустой записи (т.е. все NRзначения будут «выключены» на одну единицу)