同じパターン間の行を特定し、一致する各行を別のファイルに保存したいと思います。たとえば、次のようになります。
name
aaa
bbb
bbb
ccc
name
aaa1
bbb1
ccc1
name
...
持ちたい
name
aaa
bbb
bbb
ccc
ファイル1から
name
aaa1
bbb1
ccc1
ファイル2などから。
私は次のようにawkでフラグ反転を試しました。
awk '/^name/ {flag=!flag; next} flag {print}'
しかし、私は欲しいものを手に入れませんでした。
コメントありますか?
答え1
どうですか?
awk '/name/{n+=1}{print > "file_"n".txt"}'
file_1.txt
これは、file_2.txt
...などを生成します。
答え2
次のように "csplit"を使用してこれを達成することもできます。
csplit yourfile -s -n 1 -f file_ '%name%' '/name/' '{*}'
これにより、「file_1」、「file_2」などのファイルが生成されます。