我试图理解来自不同文件的两个字段的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
你能帮忙了解哪里出错了,我怎么能比较这些文件? 谢谢。
答案 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