为什么jq有时需要过滤器表达式,而有时则不需要过滤器表达式?

用户名

我有一些未格式化的JSON文件。我想用jq格式化它们,并通过更少的方式查看格式化的输出:

cat *.json | jq | less

但这是行不通的。只是显示jq的帮助。

好的,jq需要一个过滤器,最小为a .,但是...

cat *.json | jq

为我工作。

有什么区别?看到解析命令行是Shell的任务,这是Bash的错误吗?为什么只有jq会发生这种情况?

jq如果检测到其输出流是终端,则某些事情会有所不同。一方面,它对输出进行颜色编码(除非您显式关闭该选项)。但是与这个问题更相关的是,对于1.5版,如果它检测到其输出流是一个终端并且其输入流不是一个终端,并且根本没有任何非选项命令行参数,则假定您打算使用过滤器.

这就是您输入时发生的情况cat *.json | jq在这种情况下,jq的输入流是管道(来自cat命令),但其输出流是终端。因此,假设默认过滤器为.

但是,当您jq通过Through传递输出时lessjq的输出流不再是终端。现在是管道(连接到less流程)。因此,.没有插入自动过滤器,并且jq抱怨没有提供过滤器。

但是,如果升级到v1.6,您会发现行为已更改。在V1.6,没有任何过滤器的调用将被调整为.,除非两个输入流和输出流是一个终端。因此,如果您进行升级,则会发现它的cat *.json | jq | less工作方式与大致相同cat *.json | jq,不同之处在于输出是彩色的,当然也不会分页。

顺便说一句,如果您想使用来查看彩色输出less(并且您正在使用Gnu less),那么可以使用以下命令:

cat *.json | jq . -C | less -R   # The . is not necessary with v1.6

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么jq有时需要过滤器表达式,而有时则不需要过滤器表达式?

来自分类Dev

为什么“尝试/捕获”中的命令有时需要-ErrorAction停止,而有时则不需要?

来自分类Dev

带有深层过滤器的JSONPath表达式

来自分类Dev

DynamoDB 过滤器表达式的用途是什么?

来自分类Dev

我是否需要在Elasticsearch过滤器中优化布尔表达式?

来自分类Dev

尝试将键和值同时传递给jq过滤器表达式时出错

来自分类Dev

为什么在 lambda 表达式中使用过滤器时会出现错误?

来自分类Dev

正则表达式所有带有过滤器的标签之间

来自分类Dev

ngOptions-在表达式中使用track by时,过滤器不起作用

来自分类Dev

在指定映射字符过滤器时使用正则表达式

来自分类Dev

熊猫DataFrame过滤器正则表达式

来自分类Dev

AngularJS过滤器表达式未更新

来自分类Dev

ElasticSearch正则表达式过滤器

来自分类Dev

Grails过滤器正则表达式

来自分类Dev

表达式模块错误“过滤器对象”

来自分类Dev

ElasticSearch正则表达式过滤器

来自分类Dev

过滤器中的AngularJS逻辑表达式?

来自分类Dev

在angularJS过滤器的表达式中使用“或”

来自分类Dev

应用linq过滤器转换表达式

来自分类Dev

高级过滤器/表达式以限制条目

来自分类Dev

tcpdump过滤器表达式通过adb中断

来自分类Dev

Logstash Grok过滤器正则表达式

来自分类Dev

iMacros 的正则表达式过滤器

来自分类Dev

谓词表达式作为过滤器参数

来自分类Dev

AngularJS 过滤器根据表达式动态应用

来自分类Dev

流过滤器正则表达式

来自分类Dev

具有三元运算符表达式的AngularJS过滤器

来自分类Dev

Jekyll`where_exp`过滤器带有“包含”表达式

来自分类Dev

具有 Spring 集成流的多过滤器表达式

Related 相关文章

  1. 1

    为什么jq有时需要过滤器表达式,而有时则不需要过滤器表达式?

  2. 2

    为什么“尝试/捕获”中的命令有时需要-ErrorAction停止,而有时则不需要?

  3. 3

    带有深层过滤器的JSONPath表达式

  4. 4

    DynamoDB 过滤器表达式的用途是什么?

  5. 5

    我是否需要在Elasticsearch过滤器中优化布尔表达式?

  6. 6

    尝试将键和值同时传递给jq过滤器表达式时出错

  7. 7

    为什么在 lambda 表达式中使用过滤器时会出现错误?

  8. 8

    正则表达式所有带有过滤器的标签之间

  9. 9

    ngOptions-在表达式中使用track by时,过滤器不起作用

  10. 10

    在指定映射字符过滤器时使用正则表达式

  11. 11

    熊猫DataFrame过滤器正则表达式

  12. 12

    AngularJS过滤器表达式未更新

  13. 13

    ElasticSearch正则表达式过滤器

  14. 14

    Grails过滤器正则表达式

  15. 15

    表达式模块错误“过滤器对象”

  16. 16

    ElasticSearch正则表达式过滤器

  17. 17

    过滤器中的AngularJS逻辑表达式?

  18. 18

    在angularJS过滤器的表达式中使用“或”

  19. 19

    应用linq过滤器转换表达式

  20. 20

    高级过滤器/表达式以限制条目

  21. 21

    tcpdump过滤器表达式通过adb中断

  22. 22

    Logstash Grok过滤器正则表达式

  23. 23

    iMacros 的正则表达式过滤器

  24. 24

    谓词表达式作为过滤器参数

  25. 25

    AngularJS 过滤器根据表达式动态应用

  26. 26

    流过滤器正则表达式

  27. 27

    具有三元运算符表达式的AngularJS过滤器

  28. 28

    Jekyll`where_exp`过滤器带有“包含”表达式

  29. 29

    具有 Spring 集成流的多过滤器表达式

热门标签

归档