【发布时间】:2013-07-22 09:46:10
【问题描述】:
我有以下内容的file1
{"name":"clio5", "value":"13"}
{"name":"citroen_c4", "value":"23"}
{"name":"citroen_c3", "value":"12"}
{"name":"golf4", "value":"16"}
{"name":"golf3", "value":"8"}
我有 file2 包含以下内容
{"name":"clio5", "value":"14"}
{"name":"citroen_c4", "value":"25"}
{"name":"golf4", "value":"18"}
我想执行一个 shell 命令来显示 file1 和 file2 的内容。如果 file1 和 file2 中都存在name,那么我只想显示 file2 的相关行。
所以输出应该是这样的:
$command taking account file1 file2
{"name":"clio5", "value":"14"}
{"name":"citroen_c4", "value":"25"}
{"name":"citroen_c3", "value":"12"}
{"name":"golf4", "value":"18"}
{"name":"golf3", "value":"8"}
该命令不应编辑 file1 也不应编辑 file2
编辑
file1 和 file2 具有完全相同的内容格式:
{"name":"any", "value":"xx"}
命令应该尽可能简单
该命令可以包含grep、sed、awk
【问题讨论】:
-
"if line exists" 应该解释得更清楚一点,这不是“同一行”是否存在,而只是具有相同“名称”的一行:)
-
@SvendHansen 是的,完全正确
-
我认为我的解决方案可能现在可以工作了,如果输出的顺序不重要:)