shell 处理json
时间: 2023-08-13 20:21:34 浏览: 41
在 shell 中处理 JSON 可以使用一些工具和命令行工具,如 `jq`、`sed`、`awk` 等。其中,`jq` 是处理 JSON 最常用的工具之一。
以下是一些使用 `jq` 处理 JSON 的示例:
1. 处理 JSON 数组
假设有如下 JSON 数组:
```json
[
{
"name": "Alice",
"age": 20
},
{
"name": "Bob",
"age": 30
},
{
"name": "Charlie",
"age": 25
}
]
```
要获取数组中所有对象的 `name` 属性,可以使用如下命令:
```shell
$ cat data.json | jq '.[].name'
```
输出:
```
"Alice"
"Bob"
"Charlie"
```
2. 处理嵌套 JSON
假设有如下嵌套 JSON:
```json
{
"name": "Alice",
"age": 20,
"address": {
"city": "Beijing",
"country": "China"
}
}
```
要获取 `address` 对象的 `city` 属性,可以使用如下命令:
```shell
$ cat data.json | jq '.address.city'
```
输出:
```
"Beijing"
```
3. 处理 JSON 对象
假设有如下 JSON 对象:
```json
{
"name": "Alice",
"age": 20,
"scores": {
"math": 80,
"english": 90,
"history": 85
}
}
```
要获取 `scores` 对象的所有属性和值,可以使用如下命令:
```shell
$ cat data.json | jq '.scores'
```
输出:
```json
{
"math": 80,
"english": 90,
"history": 85
}
```
以上是使用 `jq` 处理 JSON 的一些示例,`jq` 还有很多其他的功能和用法,可以查看官方文档进行学习。