shell修改指定key内容+json
时间: 2023-08-08 08:01:51 浏览: 60
要修改JSON中指定key的内容,可以使用shell脚本结合jq工具来实现。
首先,确保已经安装了jq工具。如果没有安装,可以使用以下命令进行安装:
```
sudo apt-get install jq
```
假设我们有一个名为data.json的JSON文件,内容如下:
```
{
"name": "Alice",
"age": 25,
"email": "alice@example.com"
}
```
现在,我们想要修改其中的key为"name"的值。可以使用如下的shell脚本:
```shell
#!/bin/bash
key="name"
newValue="Bob"
jq --arg key "$key" --arg newValue "$newValue" '.[$key] = $newValue' data.json > temp.json
mv temp.json data.json
```
解释如下:
- 第1行:指定使用bash作为脚本解释器。
- 第3行:设置要修改的key值。
- 第4行:设置要修改的新值。
- 第6行:使用jq工具来修改JSON文件。`--arg`选项用来传递变量给jq,在jq脚本中使用`$key`和`$newValue`来引用这些变量。`.[$key] = $newValue`表示将指定的key值修改为新值。
- 第7行:将修改后的JSON内容输出到临时文件temp.json。
- 第8行:将temp.json文件重命名为data.json,覆盖原始文件。
运行这个脚本后,data.json文件的内容将被修改为:
```
{
"name": "Bob",
"age": 25,
"email": "alice@example.com"
}
```
这样就成功修改了指定key的内容。根据具体的需求,你可以根据这个例子进行修改,来实现其他类型的JSON操作。