ヘッダーとトレーラーの間のレコードを、ヘッダーとトレーラーを含む新しいファイルにコピーします。

ヘッダーとトレーラーの間のレコードを、ヘッダーとトレーラーを含む新しいファイルにコピーします。

いくつかのタイトル、詳細、トレーラー履歴を含むファイルがあります。 (固定長)

たとえば、私のファイルは次のようになります。

Habcd20200317
R123 abc def
R234 dfg thg
T2 2018907
Hagfd20200316
R346 adf thg
R456 tsh ahs
T3 2018937

出力ファイルは次のように保存する必要があります。20200317.txt

Habcd20200317
R123 abc def
R234 dfg thg
T2 2018907

そして20200316.txt

Hagfd20200316
R346 adf thg
R456 tsh ahs
T3 2018937

それぞれ。

Unixシェルスクリプトでこれをどのように達成できますか?助けてください。

ベストアンサー1

レコードの長さが固定されているため、モジュラー操作を使用できます。

awk 'NR%4 == 1 {outfile = substr($0,6) ".txt"} {print > outfile}' file

おすすめ記事