jq-json数据过滤命令
jq是一款命令行下处理json数据的工具,可以接受标准输入、命令行管道或文件中的json数据。经过过滤器和表达式的转换输出我们需要的数据
安装
CentOS安装
yum install -y epel-release
yum install -y jqUbuntu安装
apt update
apt install -y jq使用
常用选项
-c 紧凑而不是漂亮的输出;
-n 使用`null`作为单个输入值;
-e 根据输出设置退出状态代码;
-s 将所有输入读取(吸取)到数组中;应用过滤器;
-r 输出原始字符串,而不是JSON文本;
-R 读取原始字符串,而不是JSON文本;
-C 为JSON着色;
-M 单色(不要为JSON着色);
-S 在输出上排序对象的键;
--tab 使用制表符进行缩进;
--arg a v 将变量$a设置为value<v>;
--argjson a v 将变量$a设置为JSON value<v>;
--slurpfile a f 将变量$a设置为从<f>读取的JSON文本数组;
--rawfile a f 将变量$a设置为包含<f>内容的字符串;
--args 其余参数是字符串参数,而不是文件;
--jsonargs 其余的参数是JSON参数,而不是文件;
-- 终止参数处理;[root@TEST-02 ~]# echo '{"name":"voidking"}' | jq .
{
"name": "voidking"
}
[root@TEST-02 ~]# echo '{"name":"voidking"}' | jq .name
"voidking"
[root@TEST-02 ~]# echo '{"name":"voidking"}' | jq -r .name
voidking
[root@TEST-02 ~]# echo '{"name":{"firstname":"Void","lastname":"King"}}' | jq .name.firstname
"Void"
[root@TEST-02 ~]# echo '{"name":{"firstname":"Void","lastname":"King"}}' | jq -r .name.firstname
Void
[root@TEST-02 ~]# echo '{"name":{"firstname":"Void","lastname":"King"}}' | jq '.name | .firstname'
"Void"
[root@TEST-02 ~]# echo '{"name":{"firstname":"Void","lastname":"King"}}' | jq '.name | .firstname,.lastname'
"Void"
"King"
[root@TEST-02 ~]# echo '[{"firstname":"Void","lastname":"King"},{"firstname":"Hao","lastname":"Jin"}]' | jq '.[] | .firstname,.lastname' | sed -n "N;s/\n/ /p"
"Void" "King"
"Hao" "Jin"
[root@TEST-02 ~]# echo '[{"firstname":"Void","lastname":"King"},{"firstname":"Hao","lastname":"Jin"}]' | jq .
[
{
"firstname": "Void",
"lastname": "King"
},
{
"firstname": "Hao",
"lastname": "Jin"
}
]
[root@TEST-02 ~]# echo '[{"firstname":"Void","lastname":"King"},{"firstname":"Hao","lastname":"Jin"}]' | jq -c .
[{"firstname":"Void","lastname":"King"},{"firstname":"Hao","lastname":"Jin"}]
# .[], .[]?, .[2], .[10:15]: 数组运算
echo '[{"name":"JSON", "good":true}, {"name":"XML", "good":false}]' | jq '.[1]'
{
"name": "XML",
"good": false
}
# [], {}: 构造一个数组/对象
echo '{"user":"stedolan","titles":["JQ Primer", "More JQ"]}' | jq '{user, title: .titles[]}'
{
"user": "stedolan",
"title": "JQ Primer"
}
{
"user": "stedolan",
"title": "More JQ"
}
最后更新于