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