如何在Bash中使用jq提取JSON值内容且不显示键名
解决方法
直接修改你脚本中的jq命令即可,核心是把输出JSON对象改为输出拼接好的纯文本字符串,同时用-r参数输出原始格式:
修改后的完整脚本
#!/bin/bash echo "Albumin =3" echo "Age Sex Albumin Proteins" echo "******" echo " " echo "Women" echo "--------------" # 调整jq输出逻辑,按你需要的字段顺序拼接字符串 jq -r '.[] | select(.V9 ==3) | select(.V2 =="Female") | "\(.V1),\(.V2),\(.V9), \(.V8)"' csvjson.json echo " " echo "Men" echo "-------------" jq -r '.[] | select(.V9 ==3) | select(.V2 =="Male") | "\(.V1),\(.V2),\(.V9), \(.V8)"' csvjson.json
说明
- 去掉了原来的
-c参数,替换为-r参数,作用是让jq直接输出原始文本,不会自动添加引号、JSON格式包裹 - 用jq的字符串插值语法
\(字段名)把你需要的字段按顺序拼接,分隔符、空格都可以根据你的需求自由调整 - 不需要用
cat管道传文件,jq支持直接读取文件路径,执行效率更高
内容的提问来源于stack exchange,提问作者icatalan
相关产品推荐
相关产品推荐

