jq 是一款命令行下处理 JSON 数据的工具。其可以接受标准输入,命令管道或者文件中的 JSON 数据,经过一系列的过滤器(filters)和表达式的转换后形成我们需要的数据结构并将结果输出到标准输出中。
jq 只能接受 well form 的 JSON 字符串作为输入内容。也就是说输入内容必须严格遵循 JSON 格式的标准。所有的属性名必须是 以双引号 包括的字符串。对象的最后一个属性的末尾或者数组的 最后一个元素的末尾不能有逗号 。否则 jq 会抛出无法解析 JSON 的错误。
cat 1.txt
获取地址 address 信息:
获取 address 信息中的邮编 postalCode:
获取电话信息
获取第一个电话号码
假设我只想要家庭电话,而不是整个 JSON 数组数据,可以使用以下方式
提取json指定字段转csv
csv数据
转换格式
测试数据
转换格式
官方指导
Parsing JSON with jq
IBM深度介绍
CSDN-Shell命令行处理JSON
JSON介绍
其他格式化json方法介绍
可以使用$1表示脚本执行时传入的第一个参数,即传入的json文件名或路径。在脚本中可以使用这个参数来读取json文件的内容,然后提取出需要的时间参数。假设json文件格式如下:
{
"time": "2022-01-01 00:00:00",
...
}
{
"time": "2022-01-01 00:00:00",
...
}
在脚本中可以使用以下命令来提取出时间参数值:
time=$(cat $1 | jq -r '.time')echo $time
time=$(cat $1 | jq -r '.time')
echo $time
其中cat $1表示使用$1传入的json文件名或路径来读取文件内容,jq是一个JSON解析器工具,可以使用jq命令来从JSON数据中提取想要的信息。.time表示提取出JSON对象中的time字段,-r选项表示输出裸数据。最后将提取出来的时间参数值保存在time变量中,并打印出来。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)