如果条件不忽略文本文件中的行

时间:2019-09-05 06:42:23

标签: awk

为什么以下awk命令不忽略以ChrCChrM开头的列:

awk '{if($1 != "ChrC" || $1 != 'ChrM') print $0}' TAIR10_GFF3_genes-fix1.rm_rubbish_rm_protein_rm_id_rm_index.gff | cut -f1 | sort | uniq
Chr1
Chr2
Chr3
Chr4
Chr5
ChrC
ChrM
##gff-version 3

先谢谢您

2 个答案:

答案 0 :(得分:1)

由于未提供示例,因此无法对其进行测试,请您尝试在awk内更改条件。恕我直言,为什么打印它是因为它的OR条件,所以如果零件中的1个失败,那么它也会打印行(基于  1 || 0-> 1的OR条件的逻辑,在AND条件的情况下不会发生。

if($1 != "ChrC" && $1 != "ChrM")

答案 1 :(得分:1)

尝试(使用"

awk '{if($1 != "ChrC" || $1 != "ChrM") print $0}' TAIR10_GFF3_genes-fix1.rm_rubbish_rm_protein_rm_id_rm_index.gff | cut -f1 | sort | uniq

可能print $1会为您节省cut