我想使用bash命令从这个json文件中删除“registrationCertificates”条目
{
"hardwarePrivateKey": "-----BEGIN RSA PRIVATE KEY-----\1234
"destinations": [
{
"destination": "test.com",
"destinationIP": "1.1.1.1",
"registrationPrivateKey": "-----BEGIN RSA PRIVATE KEY-----\nM
"registrationPublicKey": "-----BEGIN RSA PUBLIC KEY-----\nMI
"hardwareCertificates": [
"certificate": "-----BEGIN CERTIFICATE-----\nM
"certificate": "-----BEGIN CERTIFICATE-----\nMIID
],
"registrationCertificates": [
"certificate": "-----BEGIN CERTIFICATE-----\nMIID
"certificate": "-----BEGIN CERTIFICATE-----\nMIID0
]
}
]
}
CRC=8
答案 0 :(得分:1)
你的json不是有效的,所以这永远不会有效......但
我建议您安装jq包。它是一个在bash中使用JSON的命令行工具。
然后您可以使用jq删除密钥,如下所示:
jq 'map(del (.keyToRemove) | del (.secondKeyToRemove))'
享受!
答案 1 :(得分:0)
尝试关注并告诉我这是否对您有所帮助。
awk '/registrationCertificates/{p=1} /]/ && p{p="";next} p{next}1' Input_file
答案 2 :(得分:0)
假设你的文件是mytest.json,这里有一个完成你需要的代码:
cat mytest.json | tr '\n' '&' | sed -e 's/, *& *"registrationCertificates": *\[ *&.* \] *& +//g' | tr '&' '\n' > myoutput.json
问候! :)