Compare as colunas de dois arquivos

-2

Arquivo1:

judi /export/home 76
judi /usr 83

Arquivo2:

judi /export/home 79
judi /usr 82

se COLUMN3 do Arquivo2 for maior que COLUMN3 do Arquivo1, o comando deverá imprimir a linha do Arquivo2; por exemplo, para os arquivos acima, o comando deve imprimir:

judi /export/home 79 

E não:

judi /usr 82
    
por judi 09.11.2015 / 16:41

1 resposta

0

Usando awk :

awk 'NR==FNR{x[NR]=$3}{if($3>x[FNR]){print}}' File1 File2
  • NR==FNR{x[NR]=$3} : se o número do registro atual for igual ao número do registro do arquivo atual (ou seja, estamos processando o primeiro arquivo), o valor do terceiro campo será atribuído a x[NR] ;
  • {if($3>x[FNR]){print}} : se o terceiro campo for maior que x[FNR] , imprime o 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
    
por kos 09.11.2015 / 17:08