我想从JSON文件中获取值: 例如:
{"name":"ghprbActualCommitAuthorEmail","value":"test@gmail.com"},{"name":"ghprbPullId","value":"226"},{"name":"ghprbTargetBranch","value":"master"},
我的期望是:
我想获得test@gmail.com
,226
和master
。
答案 0 :(得分:3)
sed
是处理JSON的错误工具。
假设您有一个文件tmp.json
有效 JSON,如
[{"name":"ghprbActualCommitAuthorEmail","value":"test@gmail.com"},
{"name":"ghprbPullId","value":"226"},
{"name":"ghprbTargetBranch","value":"master"}]
您可以使用jq '.[].value' tmp.son
。
如果文件包含
{"name":"ghprbActualCommitAuthorEmail","value":"test@gmail.com"}
{"name":"ghprbPullId","value":"226"}
{"name":"ghprbTargetBranch","value":"master"}
(即,只有3个独立JSON对象的流,您可以使用jq '.value' tmp.json
,因为jq
会将过滤器连续应用于每个对象。您也可以使用jq -s '.[].value' tmp.son
,其中-s
标志告诉jq
首先将整个输入读入数组。这使得您可以在两种情况下使用相同的过滤器。