Unix 使用“sed”从JSON数组中删除所有元素

Unix 使用“sed”从JSON数组中删除所有元素,unix,sed,macos-catalina,darwin,Unix,Sed,Macos Catalina,Darwin,我知道StackOverflow不是一个代码编写服务,但在过去的3个小时里,sed一直让我抓狂 总之,我需要修改我拥有的.json文件的内容 文件的外观: { // ... “第一”:{ “第二”:[ “指数为零”, “这些弦是动态的”, “SoiNeedToSewildcard” ] } // ... } 所需结果: { // ... “第一”:{ “第二”:[ ] } // ... } 你做了什么? 我已经尝试了大约一百万种变化,大致基于: sed-i的/\“second\”:\[.\]

我知道StackOverflow不是一个代码编写服务,但在过去的3个小时里,
sed
一直让我抓狂

总之,我需要修改我拥有的
.json
文件的内容

文件的外观:

{
// ...
“第一”:{
“第二”:[
“指数为零”,
“这些弦是动态的”,
“SoiNeedToSewildcard”
]
}
// ...
}
所需结果:

{
// ...
“第一”:{
“第二”:[
]
}
// ...
}
你做了什么?

我已经尝试了大约一百万种变化,大致基于:

sed-i的/\“second\”:\[.\]/\“second\”:[]/'“my.json”
##~z~这给了:~
#
#“第一”:{
#“第二”:[]
#“指数为零”,
#“这些弦是动态的”,
#“SoiNeedToSewildcard”
#        ]
#    },
基本上,我需要从
.json
文件中的数组中删除所有元素,因此如果
sed
不是该作业的正确工具,请告诉我


感谢您抽出时间。

此项工作的正确工具是:


要替换原始文件,需要两个步骤-将输出重定向到临时文件,然后重命名:

jq '.first.second = []' orig.json > tmp.json && mv -f tmp.json orig.json
jq '.first.second = []' orig.json > tmp.json && mv -f tmp.json orig.json