複数ファイルのパターン別にライン印刷

複数ファイルのパターン別にライン印刷

同じパターンのファイルが複数回あります。それは次のとおりです。

   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]}

おすすめ記事