Printing awk:打印满足字段条件的第一行

Printing awk:打印满足字段条件的第一行,printing,awk,line,conditional,Printing,Awk,Line,Conditional,我知道这是一个非常简单的问题,但我想打印许多文件中满足给定字段条件的第一行: $ awk ' ( $3>=0.2 ) { print $3, $5 } ' Data.out 我试着在一些地方插入END以退出打印,但我无法让它工作。。。上面打印了$3>=0.2…awk'($3>=0.2){print$3,$5;exit}数据的所有行。out首先想到的是添加exit: awk '$3 >= 0.2 { print $3, $5; exit }' file 但除非你只想这么做,否则你需

我知道这是一个非常简单的问题,但我想打印许多文件中满足给定字段条件的第一行:

$ awk ' ( $3>=0.2 ) { print $3, $5 } ' Data.out

我试着在一些地方插入END以退出打印,但我无法让它工作。。。上面打印了$3>=0.2…

awk'($3>=0.2){print$3,$5;exit}数据的所有行。out
首先想到的是添加
exit

awk '$3 >= 0.2 { print $3, $5; exit }' file
但除非你只想这么做,否则你需要一面旗帜:

awk '$3 >= 0.2 && !f { print $3, $5; f=1 }' file

exit
(除了明显的兼容性问题外)的问题是,如果您有多个文件,它根本不会处理下一个文件。以下是用于多个文件的脚本:

awk 'FNR==1{f=1}
    $3>=0.2{if(f)print $3,$5;f=0}' file1 file2 ...

您可以通过在第一次匹配后关闭输入文件等方式进行优化,但这至少可以让您开始进行优化。

您要查找的命令是:


如果您没有使用gawk,那么有一些建议可以在其他AWK中模拟这种行为。然而,根据gnu页面上的说明,它已经进入了2012年POSIX标准。

END
不会停止程序,它会在读取所有行后执行。我收到一条错误消息“limit number”(MKS Toolkit 9.2,Win 7 Pro)。。。gawk也有同样的错误,单引号和双引号…如果你像我建议的那样添加
exit
,你会得到那个错误吗?但不是没有它吗?是的,有awk和gawk,在cmd和ksh中。如果没有“退出”,我会得到awk中$3>0.2的所有行的打印输出,但是gawk中有一个单引号错误。我应该补充的是,有报道说Win7 Pro破坏了MKS工具包管道等,所以谁知道呢……我再次遇到了“限制数量”错误。我认为MKS awk在Win 7 Pro下被打破了。。。谢谢你的帮助!
gawk '$3 >= 0.2 { print $3, $5; nextfile }' *.out