入力.txt:
d1
a4
TEXT|VALUE1
TEXT|VALUE2
.
c8
TEXT|NVALUE1
.
a10
TEXT|VALUE3
.
a13
TEXT|VALUE4
.
c15
TEXT|NVALUE2
.
d20
d23
.
a[number]*
file1の場合は、区切り記号で始まり、区切り記号で停止する文字列を検索します.
。
file2の場合、文字列はc[number]*
区切り記号で始まり、点で終わります.
。
予想出力:
==> file1 <==
TEXT|VALUE1
TEXT|VALUE2
TEXT|VALUE3
TEXT|VALUE4
==> file2 <==
TEXT|NVALUE1
TEXT|NVALUE2
答え1
それは次のとおりです。
awk '
$0 == "." { of = ""; next }
$0 ~ /^a[0-9]+$/ { of = "file1"; next }
$0 ~ /^c[0-9]+$/ { of = "file2"; next }
of != "" { print >of }
' input.txt