比较两个文件的列

比较两个文件的列

文件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

相关内容