如果模式匹配则退出awk

时间:2013-06-27 18:45:56

标签: awk exit

我想知道是否可以告诉awk在第一次遭遇后停止搜索模式1到模式2。因为我扫描的文件包含4 GB的文本,并且awk命令的每次重复都花了一分钟来计算,我必须做一百万次。一百万次。

我正在尝试优化的行是这样的:

awk "/MODEL        ${j}/,/ENDMDL/" j=$j filename.pdb > outputfile.txt

提前感谢您的帮助

2 个答案:

答案 0 :(得分:0)

使用awk

awk '/MODEL/,/ENDMDL/;/ENDMDL/{exit}' mybigfile

使用sed

sed -n '/MODEL/,/ENDMDL/p;/ENDMDL/q' mybigfile

答案 1 :(得分:0)

不要使用/ start /,/ end / pattern,当你需要做除基础知识以外的任何事情时,它只会让你的生活更加艰难。试试这个:

awk -v j="$j" '$0 ~ "MODEL        " j{f=1} f; f&&/ENDMDL/{exit}' filename.pdb