集合演算の和と差だけで交差を作る

  • 6
    Like
  • 0
    Comment

jq コマンドを使う日常のご紹介 - Qiita

この記事を見ていて、交差(intersect)の算出方法が、他にもありそうな気がしたので、思いつきをメモ。

和がこうで

cat ./json | jq '.items + .items_old | unique'

差がこうなので

cat ./json | jq '.items - .items_old'

交差は、
(A + B) - (A - B) - (B - A)
で計算できるはず。

cat ./json | jq '(.items + .items_old | unique) - (.items - .items_old) - (.items_old - .items)'
[
  {
    "item_id": 1,
    "name": "すてきな雑貨",
    "price": 2500
  }
]

あってそうな感じ。