Comparar las columnas de dos archivos

Comparar las columnas de dos archivos

Archivo1:

judi /export/home 76
judi /usr 83

Archivo2:

judi /export/home 79
judi /usr 82

si la COLUMNA3 del Archivo2 es mayor que la COLUMNA3 del Archivo1, el comando debería imprimir la línea del Archivo2; por ejemplo, para los archivos anteriores, el comando debería imprimir:

judi /export/home 79 

Y no:

judi /usr 82

Respuesta1

Usando awk:

awk 'NR==FNR{x[NR]=$3}{if($3>x[FNR]){print}}' File1 File2
  • NR==FNR{x[NR]=$3}: si el número de registro actual es igual al número de registro del archivo actual (es decir, estamos procesando el primer archivo), asigna el valor del tercer campo a x[NR];
  • {if($3>x[FNR]){print}}: si el tercer campo es mayor que x[FNR], imprime el registro.
% 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

información relacionada