Awk 比较同一文件中的多列并打印差异

Awk 比较同一文件中的多列并打印差异,awk,compare,match,Awk,Compare,Match,我有一个大文件,想比较多个列 试用版: 我想比较第6列和第8列,第7列和第9列,并删除匹配的行。 已尝试的命令: awk '($6 != $8)&&($7 != $9){print $0}' input > output 打印差异不起作用,但是如果我想打印匹配(awk'($6==$8)&&($7==$9){print$0}输入>输出),它就起作用了 因此,所需的输出应为: 请您尝试一下下面的内容 awk'(6==8){if($7==9){next}}1'输入>输出 a

我有一个大文件,想比较多个列

试用版:

我想比较第6列和第8列,第7列和第9列,并删除匹配的行。 已尝试的命令:

awk '($6 != $8)&&($7 != $9){print $0}' input > output
打印差异不起作用,但是如果我想打印匹配(awk'($6==$8)&&($7==$9){print$0}输入>输出),它就起作用了

因此,所需的输出应为:


请您尝试一下下面的内容

awk'(6==8){if($7==9){next}}1'输入>输出

a == b && c == d
或者根据Ed sir的评论,有点令人不安:

awk'$6==$8&&$7==$9{next}1'输入文件>输出

a == b && c == d
对它的否定是:

! (a == b && c == d)
a != b || c != d
你应该了解

或者只是:

awk '!( $6 == $8 && $7 == $9 ){print $0}'

请不要以图像的形式发布数据,总是以文本的形式发布在代码标签中,这样我们就不需要在测试解决方案时手动编写它们,请也这样做,然后让我们知道。我总是以文本的形式粘贴,但这一次它不允许我从excel工作表中粘贴,这就是我粘贴图像并将输入数据集作为超链接提供的原因。不确定,可能您没有将其包装在代码标记中,请尝试编辑它一次?尝试过,但不幸的是,它不适用于meIf。如果问题是将FS设置为tab,那么OPs现有代码将有效,因为在使用默认FS时包含tab。
&
应该是一个
|
操作问题说明
($6==$8)&&($7==$9)
打印匹配的行。现在,请参阅如何取消该条件以打印不匹配的行,这正是OP真正想要做的。@Ed Morton,感谢您的指导,现在更改了解决方案,更糟糕的风格。我在驾驶室,所以没有测试,但我相信应该可以工作:)
($6==$8){如果($7==$9){next}}1
更糟糕
($6==$8)&($7==$9){next}1
@Waqas khokar,你能现在试试我编辑的答案,让我知道吗。