Скопируйте записи между заголовком и трейлером в новый файл, включая заголовок и трейлер

Скопируйте записи между заголовком и трейлером в новый файл, включая заголовок и трейлер

У меня есть файл, который имеет несколько заголовков, подробных записей и записей трейлера (фиксированной длины).

Например, мой файл выглядит так

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

Связанный контент