jq のネタ

Mattias Wadman さん(@mwader、https://github.com/wader)が指摘してくれた(https://twitter.com/mwader/status/1599769763819171840)のは次のネタ。

  • assignment (.key = 123)
  • update (.key |= .+1)
  • setpath
  • destructing bindings ({a: [1,2]} as {a: [$first,$second]} | ...)
  • the //-operator
  • own functions (def f(a) vs def($a))

最後のは、def f(a): と def f($a) だろうか。

僕のネタ・リストは:

  • リーダー→プロセッサ→ライター
  • 数値の扱い、JavaScript数値、JSON数値
  • データの組み立て方、色々
  • 別JSONファイルを読んで変数にしておく
  • 原理: 暗黙の入力と暗黙の繰り返し
  • 無限シーケンス処理。メモリーのリセット。例:メッセージパケットの宛先でフィルタリング
  • 原理: $inpu がドット
  • 下流への情報のパッシング
  • リーダーとライターをさらにラップして使う。シェルまたはプログラミング言語

下流への情報のパッシングで、

def foo:
 getpath(["members",3,"givenName"])
;

foo as $a | $a

は出来た。

def foo:
 .bandName
;
def bar:
  .members[0]
;

{"foo": foo, "bar":bar } as $a | [$a.foo, $a.bar]

も出来た。

[追記]

  1. 上の「出来た」は出来てない。
  2. as を使って、let文をシミュレートする。let a = x in b end を x as $a | b でも同じ。

[/追記]