比较两个文件(理解)

时间:2016-10-12 14:09:47

标签: awk compare

我试图理解来自不同文件的两个字段的awk比较。 (所有文件都以制表符分隔)

第一档:

1   11796321
1   169549811
1   173917078
2   48962782
4   121696962
4   121697011

第二档:

a 0 1 2 0 b 1 11796321 a
b 0 1 0 2 c 1 11800000 bd
c a d 0 0 2 4 121696962 0

输出:

 b 0 1 0 2 c 1 11800000 bd

所以我想比较第一个文件中的$ 1和第二列与第二个文件中的第7和第8列,打印无与伦比。

我试过了:

awk -v OFS="\t" -F '\t' 'FNR==NR{a[$1,$2]; next} ($7,$8) in a {next} {print $0}' file1 file2 

你能帮忙了解哪里出错了,我怎么能比较这些文件? 谢谢。

2 个答案:

答案 0 :(得分:1)

如果两个文件中的分隔符相同(<tab>),您可以试试这个:

awk -F '\t' 'FNR==NR{k=$1 FS $2;a[k];next} !($7 FS $8  in a)' file1 file2 

答案 1 :(得分:1)

更改为

$ awk -v OFS="\t" -F'\t' 'FNR==NR{a[$1,$2]; next} !(($7,$8) in a)' file1 file2