同じパターンのファイルが複数回あります。それは次のとおりです。
time
12:00
12:32
23:22
time
10:32
1:32
15:45
time
いくつかのファイルの例では、パターンに沿った行を印刷したいと思います。パターンに続く行の数は一定です。質問の最初の部分を取得できますが、awk '/time/ {x=NR+3;next}(NR<=x){print}' filename
各チャンクを別のファイルに出力する方法がわかりません。
ベストアンサー1
awk
たとえば、回線リダイレクトを使用します。
$ awk '{print "hello" >> "/tmp/hello"; print "world" >> "/tmp/world"}'
で定義されているファイルに配列を使用してから、BEGIN
次のように使用できます(awk
)。
BEGIN{files[1]="first-file";
files[2]="second-file";
line=0}
/time/{line=NR}
{print >> files[NR-line]}