У меня есть файл, который имеет несколько заголовков, подробных записей и записей трейлера (фиксированной длины).
Например, мой файл выглядит так
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