2013-10-20 26 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