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