Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果模式匹配,则退出awk_Awk_Exit - Fatal编程技术网

如果模式匹配,则退出awk

如果模式匹配,则退出awk,awk,exit,Awk,Exit,我想知道我是否可以告诉awk在第一次相遇后停止搜索模式1到模式2。因为我正在扫描的文件包含4GB的文本,每次重复awk命令都需要一分钟的时间来计算,而且我必须执行一百万次。真的有一百万次了 我试图优化的线路如下所示: awk "/MODEL ${j}/,/ENDMDL/" j=$j filename.pdb > outputfile.txt 提前感谢您对awk的帮助: awk '/MODEL/,/ENDMDL/;/ENDMDL/{exit}' mybigfile 使用se

我想知道我是否可以告诉awk在第一次相遇后停止搜索模式1到模式2。因为我正在扫描的文件包含4GB的文本,每次重复awk命令都需要一分钟的时间来计算,而且我必须执行一百万次。真的有一百万次了

我试图优化的线路如下所示:

awk "/MODEL        ${j}/,/ENDMDL/" j=$j filename.pdb > outputfile.txt
提前感谢您对awk的帮助

awk '/MODEL/,/ENDMDL/;/ENDMDL/{exit}' mybigfile
使用
sed

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

不要使用/start/,/end/模式,当你需要做除基础之外的任何事情时,它只会让你的生活更艰难。请尝试以下方法:

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

为什么不使用
grep--max count=NUM
?这可能是一个更好的问题,因为您可以使用sed:
sed'/patternA/,/patternB/!d/patternB/q'filename.pdb>outputfile.txt
,这可能比awk快。非常感谢验证码工作正常,现在不到一秒钟!