【发布时间】:2020-08-05 11:25:03
【问题描述】:
我想打印两个模式之间的所有行,每个部分在一个单独的文件中。
图案:
ATOM 10185 O WAT 622 86.629 114.783 125.073 1.00 0.00.
ATOM 10186 H1 WAT 622 87.265 114.479 125.721 1.00 0.00.
ATOM 10187 H2 WAT 622 86.215 115.543 125.482 1.00 0.00.
TER
ATOM 10188 O WAT 623 84.441 115.565 126.663 1.00 0.00.
ATOM 10189 H1 WAT 623 85.076 115.261 127.311 1.00 0.00.
ATOM 10190 H2 WAT 623 84.027 116.325 127.071 1.00 0.00.
TER
ATOM 10191 O WAT 624 85.591 117.441 124.690 1.00 0.00.
ATOM 10192 H1 WAT 624 86.226 117.137 125.338 1.00 0.00.
ATOM 10193 H2 WAT 624 85.176 118.201 125.098 1.00 0.00.
TER
我想在新文件中包含的是:
文件1:
ATOM 10185 O WAT 622 86.629 114.783 125.073 1.00 0.00.
ATOM 10186 H1 WAT 622 87.265 114.479 125.721 1.00 0.00.
ATOM 10187 H2 WAT 622 86.215 115.543 125.482 1.00 0.00.
TER
文件2:
ATOM 10188 O WAT 623 84.441 115.565 126.663 1.00 0.00.
ATOM 10189 H1 WAT 623 85.076 115.261 127.311 1.00 0.00.
ATOM 10190 H2 WAT 623 84.027 116.325 127.071 1.00 0.00.
TER
等等
我尝试了我在网站和互联网上找到的所有内容,但最终没有得到我需要的东西。主要是如何在两种模式之间进行 grep,例如 patern1xxxxxpattern2,而不是将它们打印到文件中。 (sed or awk to print lines between words、https://unix.stackexchange.com/questions/264962/print-lines-of-a-file-between-two-matching-patterns/264977 和类似的)
我试过这个,但我收到错误awk: illegal statement at source line 1:
awk '/TER/{n+=1}{print > "file_"n".txt"}'
谢谢
【问题讨论】:
-
您打印的不是两个单词之间的文本块,而是以单词结尾的文本块。