我有一个文件,其中包含许多以“MODEL”开头的“开始标记行”,以及以“ENDMDL”开头的“结束标记行”结尾的许多行。
我想解析文件,以便它抓取从“开始标记行”开始到“结束标记行”结束的所有行到新的输出文件。
换句话说,如果我在一个包含100个“开始标记行”和“结束标记行”的文件上运行它,我想生成100个文件。
我有一个awk命令工作:
awk '/MODEL/ {flag=1;next} /ENDMDL/{flag=0} flag {print}' 1KZS.pdb > TEST
但是,此命令只会将MODEL - > ENDMDL之间的所有行打印到相同的输出文件中。但我希望每个MODEL - > ENDMDL在 new 输出文件中输出。
如何调整我的awk命令来完成此任务?
答案 0 :(得分:0)
这样可以解决问题:
$ awk '/MODEL/{f=1;s="FILE"++i;next}/ENDMDL/{f=0;close(s)}f{print > s}' 1KZS.pdb