我想知道是否可以告诉 awk 在第一次遇到后停止搜索模式 1 到模式 2。因为我正在扫描的文件包含 4 GB 的文本,并且每次重复 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