0
输入:缺少的头
position fst
1 0.6
2 0.8
3 0.9
4 0.3
5 1
这给了我一个头:
awk '{if ($2>=0.7) print $1}' input > output
但这并不:
awk '{if ($2<0.7) print $1}' input > output
怎么来的?
输入:缺少的头
position fst
1 0.6
2 0.8
3 0.9
4 0.3
5 1
这给了我一个头:
awk '{if ($2>=0.7) print $1}' input > output
但这并不:
awk '{if ($2<0.7) print $1}' input > output
怎么来的?
如果你总是想打印头,然后使用:
awk '{if (NR>1) {if ($2>=0.7) print $1} else print $1}'
awk '{if (NR>1) {if ($2<0.7) print $1} else print $1}'
在你的第二个例子,$2<0.7
被解释为"fst"<"0.7"
这是FALSE
您可以添加NR==1 ||
始终打印第一行:
$ awk 'NR==1 || $2<0.7{print $1}' input
position
1
4
我不能告诉你为什么没有你的'输入'! – kev 2012-01-11 12:14:50
你是什么意思的'头'?我们可以有一个“输入”的小样本吗?如果该行的第二列大于等于0.7,那么前一个命令会打印行的第一列中的值,如果其值小于0.7,则打印该值。所以也许你没有得到任何东西,因为第二列的所有值都小于0.7。 – 2012-01-11 12:15:27
对我来说,它打印所有$ 1。我认为你的数字正在被截断。 – 2012-01-11 12:29:55