2013-10-20 39 views
0
awk -F, '$2>0 {print $1}' file.csv 

這不會返回任何結果。Awk如果低於0

awk -F, '$2<0 {print $1}' file.csv 

這將返回一切。

我想要的是如果$ 2的值低於0,我想要$ 1中的名稱。 相同如果高於0.

總結一下,我想將我的列表分成兩部分;高於和低於零。

FILE.CSV:

"" "log2FoldChange" "padj" 
"AASS" 0.585822345291 0.0142249243232589 
"ABCC3" -1.12579715427411 0.00503178459354681 
+1

'一切'是什麼?請包括您的輸入樣本。 – 2013-10-20 13:28:31

+0

你的代碼似乎正確的要求。第2欄中的輸入似乎沒有正確的格式。考慮提供示例輸入 – jkshah

+0

完整的file.txt顯示在第一個CMD中,而第二個CMD中沒有file.txt。 – user2862862

回答

2

你告訴awk來對人物,拆分其輸入線,但你的例子輸入不包含,字符。您的示例輸入使用空格來分隔其輸入字段。所以$1是整個輸入行,而$2是空字符串,它總是小於0

修復你的輸入,或者告訴awk在空間上分割。另外,如果您使用的是GNU awk,如果您的內容在引用字段內可以包含空格(或逗號?),則可能需要閱讀「Splitting by Content」 in the GNU Awk User's Guide