@peccul is peccu

(love peccu '(emacs lisp cat outdoor bicycle mac linux coffee))

集合の差、積を取るcommコマンドが便利

全体でこれだけあって、見つかったのがこれ、残りはどれ?ということをしたかったので調べた。 (未提出者/未更新者を列挙。というような)

alpine linuxにも入っているようなのでほぼbashが入ってるところなら使えそう。

all.txtとpart.txtというファイルがあって、allにしか存在しない行を抜き出す

$ comm -23 all.txt part.txt

使い方

  • ファイルがソートされてるとき comm [-123] FILE1 FILE2
  • ソートされてないとき (bashの機能でsortコマンドの結果をcommコマンドに渡す) comm [-123] <(sort FILE1) <(FILE2)

オプションがややこしい。

  • 1はFILE1だけに存在するのを除外する
  • 2はFILE2だけに存在するのを除外する
  • 3は両方に存在するものを除外する

これらのオプションは組み合わせられる。

all.txt(FILE1)だけに存在するものを得るには FILE2だけに存在するものを除外して、両方に存在するものも除外すれば FILE1だけに存在するものが残るので

comm -23 all.txt part.txt

となる

参考

www.unixcl.com