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>
我想比较 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>