json - 通过 jq 为每个 JSON 项运行 bash 命令

标签 json bash parsing jq

我想利用 jq 为 JSON 格式数据中的每个字段运行一个 bash 命令。

{
    "apps": {
        "firefox": "1.0.0",
        "ie": "1.0.1",
        "chrome": "2.0.0"
    }
}

基本上我想要这样的东西:

foreach app:
   echo "$key $val"
done

最佳答案

假设您想列出 apps 对象的键/值:

$ jq -r '.apps | to_entries[] | "\(.key)\t\(.value)"' input.json

要使用输出作为参数调用另一个程序,您应该熟悉 xargs :

$ jq -r '...' input.json | xargs some_program

关于json - 通过 jq 为每个 JSON 项运行 bash 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38779732/

相关文章:

json - vega 中分组条形图的工具提示(使用分组标记)

json - 如何用 JSON 树中的相同键替换所有值

linux - `${1+/$1}` 在 Bash 中意味着什么?

bash - 运行带绘图的 R 脚本

python - 对于 beautifulsoup 文件中的所有文件名,返回标签为空

javascript - Angular 2 : TypeScript/Javascript: Converting JSON string value to proper JSON object

jquery - 为什么 $.ajax 调用 json 数据会在 http 状态码为 "200 OK"时触发错误回调?

regex - sed 查找与另一个模式一致的模式

解析需要大量前瞻的案例

java - 我需要解析格式不正确的 xml 数据 (HTML)