Copie os registros entre o cabeçalho e o trailer em um novo arquivo incluindo o cabeçalho e o trailer

Copie os registros entre o cabeçalho e o trailer em um novo arquivo incluindo o cabeçalho e o trailer

Eu tenho um arquivo que possui vários registros de cabeçalhos, detalhes e trailers (comprimento fixo).

Por exemplo, meu arquivo se parece com

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

O arquivo de saída deve ser salvo como20200317.txt

Habcd20200317
R123 abc def
R234 dfg thg
T2 2018907

e20200316.txt

Hagfd20200316
R346 adf thg
R456 tsh ahs
T3 2018937

respectivamente.

Como posso conseguir isso em scripts de shell unix? Por favor ajude.

Responder1

Como seus registros têm comprimento fixo, você pode usar o módulo aritmético:

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

informação relacionada