【问题标题】:jq reading filter from a file results in Invalid Syntax Errorjq 从文件中读取过滤器导致无效的语法错误
【发布时间】:2020-10-27 00:59:05
【问题描述】:

filter.jq ".security = {hideVersionStringsWhenNotLogged: true}"

在尝试应用过滤器时, jq --from-file filter.jq a.json

遇到以下错误 jq:错误:语法错误,意外的 INVALID_CHARACTER,期待 $end(Unix shell 引用问题?)在第 1 行

尝试了单引号和双引号的所有组合均无济于事。 有什么建议么? 谢谢

【问题讨论】:

  • 输入 json 和 jq 程序都有很多问题。您的输入 json 不是有效的 json(impalaSettings 后面有额外的不匹配大括号,最后一个属性后面有逗号)并且您的输入 jq 程序无效(abtrue 是什么?)。如果您解决了这些问题,它将起作用 (example)
  • 简单来说就是想知道如何使用jq-f选项-从文件而不是命令行中读取过滤器
  • 您在过滤器文件中输入的内容正是您从命令行输入的内容。据我所知,您目前拥有的内容是无效的。
  • jq '.security = { "hideVersionStringsWhenNotLogged": true}' a.json - 当我执行此操作时 - 输出正确显示,但是,当我尝试使用 jq -f 选项时- 出现语法错误。 filter.jq 文件包含上面指定的过滤器。

标签: command-line jq quoting


【解决方案1】:

如果您希望从文件中读取过滤器,请不要将其括在引号中,如果在命令行中指定了过滤器,则需要使用引号。

所以filter.jq 文件的内容可能如下所示:

.security = {hideVersionStringsWhenNotLogged: true}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    • 2013-05-28
    • 2019-01-20
    • 2020-05-28
    相关资源
    最近更新 更多