Awk 抓住图案下方的六行数字
我重复这些台词Awk 抓住图案下方的六行数字,awk,text-extraction,Awk,Text Extraction,我重复这些台词 FINAL RESULTS NSTEP ENERGY RMS GMAX NAME NUMBER 1000 -4.7910E+01 2.1328E-01 9.4193E-01 C 62 最终结果显示了一组值的平均值。输出文件合并了所有1000个集合。我需要抓取能量(-4.7
FINAL RESULTS
NSTEP ENERGY RMS GMAX NAME NUMBER
1000 -4.7910E+01 2.1328E-01 9.4193E-01 C 62
最终结果显示了一组值的平均值。输出文件合并了所有1000个集合。我需要抓取能量(-4.7910E+01)下面的数字,所有1000个都放在另一个文件中。我需要将最终结果设置为模式,因为其他模式,如NSTEP、ENERGY、RMS。。。。以百万计重复
如果有任何帮助,我将不胜感激。好的,我想我现在明白了
awk 'found==1 { print $2; found=0 } $2=="ENERGY" { found=1 }' inputfile
这将得到下面的数字
能量
,无论它与最终结果之间有多少行
类似的东西应该适合您:
awk '/FINAL RESULTS/{for (i=0; i<5; i++) getline; print $2}' <filename>
awk '/FINAL RESULTS/{f=1;p=0}{p++}f==1 && p==6{print $2}' file
awk'/FINAL RESULTS/{for(i=0;i这可能适合您:
awk '/FINAL RESULTS/{for (i=0; i<5; i++) getline; print $2}' <filename>
awk '/FINAL RESULTS/{f=1;p=0}{p++}f==1 && p==6{print $2}' file
或者,如果您愿意:
awk 'f==2 && p==1{print $2}{p++}/FINAL RESULTS/{f=1}/ENERGY/ && f==1{f=2;p=0}' file
有了GNUgrep
(还有一些其他的扩展),你可以做一些类似于grep-a6‘最终结果’
因此,这应该适用于Linux,我看到它适用于最新的MacOS X,我很确定我在FreeBSD上使用过它。因此,它可能适用于您将遇到的大多数UNIX形式。(如果没有,请安装GNU“coreutils”包).我对此不太清楚,您是希望所有1000行都在ENERGY
下面,还是仅第一行?文件中有数千行。我需要所有1000行都在ENERGY下面。哦,我想我明白了,整个最终结果\n…ENERGY\n…
模式重复?这不使用“最终结果”模式因此,它将为其他部分(“NSTEP”等)输出“能量”下的值。这只打印一个值。@potong谢谢你的评论。我用多个值对它进行了测试,效果很好。你能告诉我一个没有产生预期结果的输入示例吗?我应该向你道歉。我以为在ENERGY
下有1000行,而不是有1000个最终结果。