
次の2つのファイルには、使用可能なビルド名とバージョン番号が含まれています。
サーバー.txt
Build2 200
Build3 100
Build1 400
Build7 200
ローカル.txt
Build1 300
Build2 200
Build3 100
私の場合、両方のリストが必ずしも順番にあるか、同じ数の値を持つ必要はありません。
ローカル値がサーバー値と等しい場合、ビルドは「更新」されます。次の例のように、出力が「更新済み」か「期限切れ」かを示す出力を生成する方法は次のとおりです。
Build2 Updated
Build3 Updated
Build1 Out-of-date
Build7 Out-of-date
答え1
一般的な解決策awk
:
awk '
NR==FNR { k[$1] = $2; next }
{ print $1, (k[$1] == $2) ? "Updated" : "Out-of-date" }
' local.txt server.txt