繁体   English   中英

使用 jq 在 JSON 数组中进行字符串操作

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM