You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bash中输出单行JSON?jq -c参数出现空输出问题

解决jq生成单行JSON空输出的问题

空输出的核心原因是jq没有正确接收到输入数据,或者命令逻辑没处理好文件内容。下面给你几个可行的解决办法:

方法1:通过变量传递文件内容

这个方法能避免文件内容里的特殊字符(比如引号、换行)干扰jq解析,适配大多数场景:

jq -n -c --arg content "$(cat test.txt)" '{"query": $content}'

参数说明:

  • -n:让jq不自动读取标准输入,而是用指定表达式构建JSON
  • --arg:把shell读取到的文件内容赋值给jq变量$content
  • -c:强制输出紧凑的单行JSON结构

方法2:让jq直接读取文件

如果文件内容是无特殊字符的纯文本,也可以直接让jq处理文件:

jq -c '{query: .}' test.txt

这里的.代表jq读取到的当前行内容,直接将其作为query字段的值生成单行JSON。

排查小技巧

如果还是出现空输出,先检查文件内容是否正常:

cat -A test.txt

这个命令会显示文件里的所有隐藏字符(比如换行符、制表符),确认文件确实包含primer query这行内容,没有意外的空行或不可见字符。

内容的提问来源于stack exchange,提问作者vkaul11

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 03:07:11