
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 zugewiesenx[NR]
;{if($3>x[FNR]){print}}
: Wenn das dritte Feld größer ist alsx[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