![](/img/trans.png)
[英]SED/AWK how to replace a value if a parent key matches in json file
[英]Using sed/awk to modify huge JSON file
我有一个这样的JSON文件,我想使用sed / awk替换某些键并添加新的键,例如,我不能使用jq这样的json解析器,因为这需要安装过程,并且产品环境有限。
输入:
[{
"key1": "value1",
"key2": "23456734",
"nestedKey1": {
"234567890": {
"key2": "value3",
"key4": "value4"
}
}
}]
输出:
[{
"key2": "value1:23456734",
"nestedKey1": {
"CONSTANT:234567890": {
"key4": "value4"
}
}
}]
sed不是正确的工具。
也就是说,以下命令将与您的示例文件一起使用(在生产环境中使用该文件需要您自担风险 ):
sed '
/ *"key1"/ {
N
s/ *"key1": "\([^"]*\)",\n\( *"key2": \)"\([0-9]*\)"/\2"\1:\3"/
}
/"nestedKey1": {/ {
N
s/"\([0-9]*"\)/ "CONSTANT:\1/
n
/key2/d
}
' file
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.