If statement 使用bash和comperatives逐行比较具有多列的两个文件

If statement 使用bash和comperatives逐行比较具有多列的两个文件,if-statement,awk,compare,multiple-columns,If Statement,Awk,Compare,Multiple Columns,我有两个文件: 文件1: a b 30 d a b 50 d 和文件2: a b 20 d a b 60 d 首选输出文件\u输出: a b 20 d a b 50 d 我想逐行比较每个文件,并在输出文件中打印,第3列中的数字使用awk更小 我试过这样的方法: awk ' NR==FNR { arr[$3];next} arr[$3] < $3 ' file1 file2 > file_output awk'NR==FNR{arr[$3];next}arr[$3]

我有两个文件:

文件1:

a b 30 d
a b 50 d
和文件2:

a b 20 d
a b 60 d
首选输出文件\u输出:

a b 20 d
a b 50 d
我想逐行比较每个文件,并在输出文件中打印,第3列中的数字使用awk更小

我试过这样的方法:

awk '  NR==FNR { arr[$3];next} arr[$3] < $3 ' file1 file2 > file_output
awk'NR==FNR{arr[$3];next}arr[$3]<$3'file1 file2>文件输出

但是它只为文件1打印较小的文件,而不为文件2打印较小的文件。欢迎使用Stack Overflow。请按照建议添加您的搜索/研究工作的简要说明。如果有一天您有时间。如果您能逐步解释您的答案,我将不胜感激。好的,谢谢“分享”.您认为“十进制”是什么?能否提供一个“非工作”样本?
awk 'FNR==NR {f3[FNR]=$3;a[FNR]=$0;next} FNR in a {print ($3<f3[FNR])?$0:a[FNR]}' file1 file2