我有一个大文本文件,最多包含 2300 个部分。每个部分开始,前一行,“PAGE 1”页码在行的最后,
例子:
T5271-AX1 TITLE DATE
SUB TITLE PAGE 1
LINE1
LINE2
T5271-AX1 TITLE PAGE 2
LINE3
LINE4
SUB TITLE PAGE 3
LINE5
T5271-BX1 DATE
SUB TITLE PAGE 1
LINE1
Run Code Online (Sandbox Code Playgroud)
文件最多 2300 个节,每个节可以有几百页,但节的行尾总是有“PAGE 1”。
文件名包含在“PAGE 1”上方一行的第一个 9-15 个字符的字符串中
我想在“PAGE 1”处拆分文件,并在输出文件的名称中使用 9-15 个字符。
在我的示例中,最终结果将是两个文件:
T5271-AX1
T5271-BX1
Run Code Online (Sandbox Code Playgroud)
我可以很容易地找到页码和标题,但我不知道如何拆分文件并将其输出到一个新文件中,直到下一次出现“PAGE 1”。
任何帮助,将不胜感激
$ cat tst.awk
/ PAGE 1$/ {
close(out)
split(prev,p)
out = p[1]
}
NR > 1 { print prev > out }
{ prev = $0 }
END { print prev > out }
Run Code Online (Sandbox Code Playgroud)
$ awk -f tst.awk file
Run Code Online (Sandbox Code Playgroud)
$ head T*
==> T5271-AX1 <==
T5271-AX1 TITLE DATE
SUB TITLE PAGE 1
LINE1
LINE2
T5271-AX1 TITLE PAGE 2
LINE3
LINE4
SUB TITLE PAGE 3
LINE5
==> T5271-BX1 <==
T5271-BX1 DATE
SUB TITLE PAGE 1
LINE1
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
79 次 |
最近记录: |