![比较两个文件的列](https://linux22.com/image/985525/%E6%AF%94%E8%BE%83%E4%B8%A4%E4%B8%AA%E6%96%87%E4%BB%B6%E7%9A%84%E5%88%97.png)
文件1:
judi /export/home 76
judi /usr 83
文件2:
judi /export/home 79
judi /usr 82
如果 File2 的 COLUMN3 大于 File1 的 COLUMN3,则该命令应该打印 File2 的行;例如,对于上述文件,该命令应该打印:
judi /export/home 79
并不是:
judi /usr 82
答案1
使用awk
:
awk 'NR==FNR{x[NR]=$3}{if($3>x[FNR]){print}}' File1 File2
NR==FNR{x[NR]=$3}
:如果当前记录号等于当前文件记录号(即,我们正在处理第一个文件),则将第三个字段的值赋给x[NR]
;{if($3>x[FNR]){print}}
:如果第三个字段大于x[FNR]
,则打印该记录。
% cat File1
judi /export/home 76
judi /usr 83
% cat File2
judi /export/home 79
judi /usr 82
% awk 'NR==FNR{x[NR]=$3}{if($3>x[FNR]){print}}' File1 File2
judi /export/home 79