簡體   English   中英

如何一次在jq中設置多個路徑值?

[英]How do I set multiple path values in jq at once?

我已經弄清楚了如何使用setpath在我的JSON文件package.json中設置一個值。 我可以使用模式嗎?

cat package.json | jq 'setpath(["dependencies", "acme-a"]; "mytagname")'

我想做的是使用如下所示的模式,因此它還將路徑設置為“ acme-b”,“ acme-c”等:

cat package.json | jq 'setpath(["dependencies", "acme-*"]; "mytagname")'

jq是否支持該功能,如果支持,如何實現?

.dependencies |= with_entries(
  if .key|test("^acme-") then .value = "mytagname" else . end )

也可以使用“ startswith”。 使用“行走”可能是適當的。

要使用“ setpath”,可以使用“ reduce”(例如帶有“ paths”),例如:

reduce paths as $p (.;
  if $p[-1] | test("^acme-") then setpath($p; "mytagname") else . end)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM