awk比较2个文件中的多列

awk to compare multiple columns in 2 files

我想比较 2 个文件中的多列,而不是打印符合我的条件的行。 这方面的一个例子是:

文件 1

apple  green  4
orange  red  5
apple  yellow 6
apple  yellow 8
grape  green 5

文件2

apple  yellow 7
grape  green 10

产出

apple  green  4
orange  red  5
apple  yellow 8

我想删除 file1 中的 </code> 和 <code> 对应于 file2 中的 </code> 和 <code> 的行,并且当 [ file1 中的 =20=] 小于 file2 中的 </code>。 我现在只能完成工作的第一部分,即从 <code>file1 中删除 </code> 和 <code> 对应于 </code> 和 <code> 的行19=](字段由制表符分隔):

awk -F '\t' 'FNR == NR {a[FS]=; next} !(FS in a)' file2 file1

你能帮我应用最后一个条件吗?

非常感谢!

在构建数组时存储第 3 个字段值,然后将其用于比较

$ awk -F '\t' 'FNR==NR{a[FS]=; next} !((FS in a) &&  > a[FS])' f2 f1
apple   green   4
orange  red 5
apple   yellow  6
grape   green   5

最好写成:

awk -F '\t' '{k = FS} FNR==NR{a[k]=; next} !((k in a) &&  > a[k])' f2 f1

你要的是这个:

awk '(NR==FNR){a[,]=; next}!((,) in a) && a[,] < ))' <file2> <file1>