我想为 jq 提供一个过滤程序,以便它从文件中读取,例如:
jq my-awesome-filter.jq whatever.json
或这个:
jq -n my-awesome-filter.jq
现在我正在回避它(使用鱼壳):
jq (cat my-awesome-filter.jq | tr -d "\n\r\t") whatever.json
和:
jq -n (cat my-awesome-filter.jq | tr -d "\n\r\t")
能够做到这一点会有兴趣吗? 有什么我可以帮忙的吗?
有一个-f
选项。 假设我们使用文件扩展名来决定文件是否有数据或jq程序,如果被多个程序调用,jq应该怎么做? 位置顺序重要吗?
哦,有吗? 在这种情况下,我认为这可能没问题。 它可能应该在手册页上指定。
顺便说一句,如果我们可以使用多个程序调用 jq 并将输入通过所有程序通过管道传输,那将会很酷,例如:
jq -fpipe this.jq that.jq -- input.json
与以下相同:
jq -f this.jq input.json | jq -f that.jq
但是,如果在文件中定义的内容在以下文件中可用,这可能会很有用。
+1
我一直在做
jq "$(cat this.jq that.jq)"' . | my_filter'
-f
是完美的,但 +1 将它放在手册页中。 :-)
最有用的评论
-f
是完美的,但 +1 将它放在手册页中。 :-)