我知道这是一个非常简单的问题,但我想打印出符合给定字段条件的许多文件中的第一行:
$ awk ' ( $3>=0.2 ) { print $3, $5 } ' Data.out
我尝试在几个地方插入END来退出打印,但是我无法使其工作...以上代码会打印出所有$3>=0.2的行...
我知道这是一个非常简单的问题,但我想打印出符合给定字段条件的许多文件中的第一行:
$ awk ' ( $3>=0.2 ) { print $3, $5 } ' Data.out
我尝试在几个地方插入END来退出打印,但是我无法使其工作...以上代码会打印出所有$3>=0.2的行...
中。
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 ...
你可能可以通过在第一次匹配后关闭输入文件来进行优化,但这至少可以让你开始。
awk ' ( $3>=0.2 ) { print $3, $5; exit } ' Data.out
exit
,你会得到那个错误吗?没有它就不会出错吗? - Etan Reisner