比較兩個檔案的列

比較兩個檔案的列

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

相關內容