一般的な使い方ジャック
jq [options] <jq filter> [file...]
たとえば、ファイルをきれいに印刷するには、次のように作成します。
jq -s '.' input.json output.json
しかし、プログラムが<filter>
成長するにつれて、完全なプログラムとしてディスクに保存する方がきれいです。
次の理由でこれを行うことができます。
- 私たちは複数のコンテキスト/ファイルでフィルタを使用し、切り取りと貼り付けの危険を冒したくありません。
- Makefileにフィルタを保存することは、コードを読みにくくする末尾のバックスラッシュを導入する必要があることを意味します。
- 運が良ければ、一部のエディタには、コードで微妙なエラーを見つけやすくするモードがあります。
最良の方法awk
(CSVファイルの場合はjqがJSONファイルの場合と似ています)は、.awk
ファイルを拡張子として保存して実行可能にした後、最初の行に書き込むことです。
#!/usr/bin/awk -f
または
#!/opt/local/bin/gawk -f
jq
ディスクにフィルタを保存するための良いメカニズムは何ですか?
答え1
あなたも同じことができます。からman jq
:
· -f filename / --from-file filename: Read filter from the file rather than from a command line, like awk´s -f option. You can also use ´#´ to make comments.
たとえば、
$ cat myfilter.jq
#!/usr/bin/jq --from-file
.[].foo // empty
実行可能であることを確認してください。
$ chmod +x myfilter.jq
それから
$ printf '[{"foo": "bar"},{"goo": "bar"},{"foo": "bam"}]' | ./myfilter.jq
"bar"
"bam"