从CSV文件中筛选出小于阈值的值

Ton*_*yGW 7 csv awk

我的CSV文件是制表符分隔的,我试图过滤掉大于的p值0.05(换句话说,我想保留条目p <= 0.05).p值在第7列,我尝试使用以下内容:

 awk '$7 <= 0.05 {print $0}' rawFile.csv > filteredFile.csv
Run Code Online (Sandbox Code Playgroud)

但是这种过滤不起作用,它返回文件而不进行过滤.

这里的p值column #7是这样的:0.33532935, 0.0, 0.8591287

小智 4

试试这个:

awk 'BEGIN {FS='\t'} {if ($7 < 0.05) print $0}'
Run Code Online (Sandbox Code Playgroud)

BEGIN 子句提供了将默认字段分隔符 (FS) 更改为制表符 ('\t') 的位置。这在旧版本的 awk 中不起作用(gawk 可能是一个有用的替代方案)。

主要逻辑发生在第二组大括号内...如果第 7 列 <= 0.05,则打印该行。