Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将指定的JSON对象从数组移动到其他数组_Json_Bash_Sed_Jq - Fatal编程技术网

将指定的JSON对象从数组移动到其他数组

将指定的JSON对象从数组移动到其他数组,json,bash,sed,jq,Json,Bash,Sed,Jq,我有数百个格式如下的文件: { "settings": [ { "name": "A", "value": "A_value" }, { "name": "B", "value": "B_value" }, { "name": "C", "value": "C_val

我有数百个格式如下的文件:

{
    "settings": [
        {
            "name": "A",
            "value": "A_value"
        },
        {
            "name": "B",
            "value": "B_value"
        },
        {
            "name": "C",
            "value": "C_value"
        },
        {
            "name": "D",
            "value": "D_value"
        }
    ]
}
并且需要通过将一些名称和值带到另一个数组中来修改它们,但仅将特定的名称和值带到另一个数组中,例如B和D,这样文件将如下所示:

{
    "settings": [
        {
            "name": "A",
            "value": "A_value"
        },
        {
            "name": "C",
            "value": "C_value"
        }
    ],
    "settings2": [
        {
            "name": "B",
            "value": "B_value"
        },
        {
            "name": "D",
            "value": "D_value"
        }
    ]
}
如何在bash脚本中完成?我有一个必须移动的“名字”列表

谢谢大家!

那么:

to_move='["B", "D"]'
jq --argjson toMove "$to_move" '{
    "settings":  [.settings[] | select([.name] | inside($toMove) | not)],
    "settings2": [.settings[] | select([.name] | inside($toMove))]
}' file.json

你试过什么?您遇到了哪些障碍?名称“settings2”来自哪里?请将您的解释、样本输入和样本输出更清晰地对齐。您可能会发现这些指南很有帮助。
{
  "settings": [
    {
      "name": "A",
      "value": "A_value"
    },
    {
      "name": "C",
      "value": "C_value"
    }
  ],
  "settings2": [
    {
      "name": "B",
      "value": "B_value"
    },
    {
      "name": "D",
      "value": "D_value"
    }
  ]
}