Kopieren Sie die Datensätze zwischen Header und Trailer in eine neue Datei, einschließlich Header und Trailer

Kopieren Sie die Datensätze zwischen Header und Trailer in eine neue Datei, einschließlich Header und Trailer

Ich habe eine Datei mit mehreren Kopf-, Detail- und Trailerdatensätzen (feste Länge).

Meine Datei sieht zum Beispiel so aus:

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

Die Ausgabedatei sollte gespeichert werden als20200317.txt

Habcd20200317
R123 abc def
R234 dfg thg
T2 2018907

Und20200316.txt

Hagfd20200316
R346 adf thg
R456 tsh ahs
T3 2018937

jeweils.

Wie kann ich dies in Unix-Shell-Skripten erreichen? Bitte helfen Sie.

Antwort1

Da Ihre Datensätze eine feste Länge haben, können Sie die Modulo-Arithmetik verwenden:

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

verwandte Informationen