我有一个对象数组,如下所示:
[
{"host": "1.exampl.com", "path": "/dir1/file.html"},
{"host": "2.exampl.com", "path": "/dir2/file.html"},
{"host": "3.exampl.com", "path": "/dir3/file.html"}
]
我想在每个对象中添加一个新键,这将使用主机和路径创建 URL,所以我看起来像这样:
[
{"host": "1.exampl.com", "path": "/dir1/file.html", "url": "http://1.example.com/dir1/file.html"},
{"host": "2.exampl.com", "path": "/dir2/file.html", "url": "http://2.example.com/dir2/file.html"},
{"host": "3.exampl.com", "path": "/dir3/file.html", "url": "http://3.example.com/dir3/file.html"}
]
我怎样才能使用jq
.
我尝试这样做,".[] |= . { . + {\"url\": \"http://\" + .host + .path } }"
但这不起作用,并且返回了此错误:
jq: error: syntax error, unexpected '}', expecting $end (Unix shell quoting issues?) at <top-level>, line 1:
在您的过滤器中,该部分
. { . + {
在 jq 中无效。尝试以下过滤器之一:
这些过滤器可以按原样用单引号括起来:
jq '…'
。如果您喜欢双引号,则需要转义某些字符(就像对 所做的那样\"
)。