Como gerar uma comparação de valores em arquivos separados

3

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
    
por matchai 02.06.2015 / 20:31

1 resposta

6

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
    
por 02.06.2015 / 20:43

Tags