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