Vergleichen Sie die Spalten zweier Dateien

Vergleichen Sie die Spalten zweier Dateien

Datei1:

judi /export/home 76
judi /usr 83

Datei2:

judi /export/home 79
judi /usr 82

Wenn COLUMN3 von File2 größer ist als COLUMN3 von File1, sollte der Befehl die Zeile von File2 drucken. Für die oben genannten Dateien sollte der Befehl beispielsweise Folgendes drucken:

judi /export/home 79 

Und nicht:

judi /usr 82

Antwort1

Verwendung von awk:

awk 'NR==FNR{x[NR]=$3}{if($3>x[FNR]){print}}' File1 File2
  • NR==FNR{x[NR]=$3}: wenn die aktuelle Datensatznummer gleich der aktuellen Dateidatensatznummer ist (d. h. wir verarbeiten die erste Datei), wird der Wert des dritten Felds zugewiesen x[NR];
  • {if($3>x[FNR]){print}}: Wenn das dritte Feld größer ist als x[FNR], wird der Datensatz gedruckt.
% 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

verwandte Informationen