A solução típica com awk
:
awk '
NR==FNR { k[$1] = $2; next }
{ print $1, (k[$1] == $2) ? "Updated" : "Out-of-date" }
' local.txt server.txt
Com os dois arquivos a seguir disponíveis com nomes de compilação e números de versão disponíveis:
server.txt
Build2 200
Build3 100
Build1 400
Build7 200
local.txt
Build1 300
Build2 200
Build3 100
Na minha situação, as duas listas não estão necessariamente em ordem ou têm o mesmo número de valores.
Uma compilação é "Atualizada" se o valor local for igual ao valor do servidor. Como posso criar uma saída que exiba se a saída é "Atualizada" ou "Desatualizada", como no exemplo abaixo:
Build2 Updated
Build3 Updated
Build1 Out-of-date
Build7 Out-of-date