Uma solução awk
:
$ awk 'NR==FNR{a[$1]++;next}
{
if(FNR in a){
print "UnKnown"
}
else{
print
}
}' nums file
Known
Known
UnKnown
Known
UnKnown
UnKnown
Explicação
-
NR==FNR{a[$1]++;next}
:NR
é o número da linha atual da entrada eFNR
do número da linha atual do arquivo atual. Os dois serão iguais apenas enquanto o primeiro arquivo estiver sendo lido. Portanto, essa expressão salvará cada número de linha (o primeiro campo,$1
, do primeiro arquivo) como uma chave na matriza
e, em seguida, passará para a próxima linha. -
if(FNR in a){ print "UnKnown"}
: se o número da linha do arquivo atual estava no primeiro arquivo, imprima "Desconhecido". -
else {print}
: se não, imprima a linha atual.