[英]String Manipulation within a JSON array using jq
我正在编写一个 bash 脚本,我正在寻找替换 JSON 数组中 JSON 字段中的一个字符。 在这种情况下,我正在尝试更改"."
(句点)字符到name
字段中的"-"
(连字符)。 我正在使用 jq 来解析我的 JSON。 关于如何实现这一点的任何提示都会有很大帮助。 谢谢!
到目前为止的 Bash 脚本:
RAW=$(curl ${URL})
function manip() {
# Function for string manipulation.
}
echo "${RAW}" | jq '.data | .[].name = $manip' # Unable to make a function call in there.
示例 JSON:
[
{"id":"1","name":"a.a"},
{"id":"2","name":"b.b"},
{"id":"3","name":"c.c"}
]
预期输出:
[
{"id":"1","name":"a-a"},
{"id":"2","name":"b-b"},
{"id":"3","name":"c-c"}
]
要用破折号替换点,请使用sub
函数:
jq '.[].name |= sub("\\."; "-")' file.json
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.