Bagaimana Anda memberi tahu awk untuk menggunakan #
karakter dengan sendirinya di baris sebagai pemisah rekaman? Masalahnya adalah Anda tidak bisa mengatakannya RS="^#$"
karena ^
cocok dengan awal file, bukan awal baris, dan RS="#\n"
tidak berfungsi karena cocok dengan #
karakter yang tidak ada di awal baris.
$ data='#
first record, first field
first record, second field
#
second record, first field#
second record, second field
'
Kemudian cetak bidang pertama dari setiap catatan, menggunakan 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
Baris terakhir salah karena ini bukan bidang pertama tetapi yang kedua. Output yang dimaksudkan adalah
first record, first field
second record, first field#
1
Bisakah Anda juga memberikan contoh output yang Anda butuhkan
—
roaima
jadi data Anda terlihat seperti
—
Skaperen
line one#line two#line three
?
dan
—
Skaperen
RS="#"
melakukan apa?
@Skaperen tidak, data tampak seperti
—
Ernest A
#\nrecord one\n#\nrecord two
dan setiap catatan terdiri dari beberapa \n
bidang yang dipisahkan.
RS='#\n'
harus bekerja afaik - meskipun akan memperlakukan awal #
sebagai penghentian catatan kosong (yaitu semua NR
nilai akan "dimatikan" oleh satu)