com awk
:
awk 'NR==FNR{a[$1]=$2; next}; $2==a[$1] {print $1 " OK"; next} \
{print $1 " Not OK"}' f1.txt f2.txt
-
NR==FNR
é verdadeiro apenas para o primeiro arquivo,f1.txt
here; estamos criando arraya
com o primeiro campo como chave e o segundo campo como valor,next
vai para o próximo registro sem se mover mais abaixo nas condicionais -
$2==a[$1]
verifica se o segundo campo do segundo arquivo,f2.txt
corresponde aos valores do primeiro campo da chave da matriza
e, em seguida, imprime no formato desejado
Exemplo:
% cat f1.txt
abc 123
bcd 234
cde 345
% cat f2.txt
abc 123
bcd 223
cde 234
% awk 'NR==FNR{a[$1]=$2; next}; $2==a[$1] {print $1 " OK"; next} {print $1 " Not OK"}' f1.txt f2.txt
abc OK
bcd Not OK
cde Not OK