![如何输出不同文件中的值的比较](https://linux22.com/image/66191/%E5%A6%82%E4%BD%95%E8%BE%93%E5%87%BA%E4%B8%8D%E5%90%8C%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%E5%80%BC%E7%9A%84%E6%AF%94%E8%BE%83.png)
以下两个文件包含可用的构建名称和版本号:
服务器.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