用于过滤具有~60个字段和> 1500个条目的文件的awk

时间:2017-10-13 13:57:45

标签: bash awk filter

我正在尝试根据特定列的值过滤文件,忽略标题行。

我试过的命令:

awk '(NR = 1) || \
     (($7>=0.8) && ($13>-0.8) && ($19>=0.8) && \
      ($25>=0.8) && ($31>=0.8) && ($37>=0.8) && \
      ($39=3) && ($40=3))' infile.txt > outfile.txt

当我运行它时,得到的outfile.txt与infile.txt完全相同,即使我已经检查了第7,13,19,25,31和37列中infile.txt中的值低于0.8,同样,第39栏和第40栏中的值低于3.

有人可以帮我解决一下吗?

谢谢!

ADIP

包含了一个示例infile.txt,其中包含我的一个文件的前几行:

https://drive.google.com/file/d/0B8LuZenMuFYGekZwd1dpcks2Tkk/view?usp=sharing

1 个答案:

答案 0 :(得分:2)

被迫将评论转换为答案。 ; - )

你在awk中犯的两个错误可能会解决你的问题: 将NR = 1更改为NR==1 和 将($39=3) && ($40=3)更改为$39==3 && $40==3

回家消息:分配=和比较==之间存在差异。