我有一个名为"awk_column_select_test.csv"
a,b,c
0.2,0.4,0.5
0.3,0.6,0.7
0.4,0.8,0.9
我试图写一个awk代码来选择列1或列2或列3大于0.5的行。
我的awk程序名为“awk_select_column_test.awk”,如下所示:
#!/usr/bin/awk -f
BEGIN {FS=","; cutoff="0.5"}
{$1 > cutoff || $2 > cutoff || $3 > cutoff}
END {print}
然后,我尝试使用以下命令在命令行上运行:
awk -f awk_select_column_test.awk awk_column_select_test.csv
我只有一行得到以下输出:
0.4,0.8,0.9
但是,我希望得到这样的两行:
0.3,0.6,0.7
0.4,0.8,0.9
答案 0 :(得分:1)
你有额外的花括号{}
和END
块打印最后一行,逻辑是正确的。
#!/usr/bin/awk -f
BEGIN {FS=","; cutoff=0.5}
NR>1 && ($1 > cutoff || $2 > cutoff || $3 > cutoff){print}
这可以写,也是
#!/usr/bin/awk -f
BEGIN {FS=","; cutoff=0.5}
NR>1 && ($1 > cutoff || $2 > cutoff || $3 > cutoff)