1.はじめに
久しぶりにLinuxに触れあい、虫の息な今日この頃です。
久しぶりの投稿はLinuxのコマンド、「comm」についてです。
2. commコマンドとは?
-
ソート済みのテキストファイルを比較するもの。
- 2つのテキストファイルを比較し、ファイル1にだけあるもの、ファイル2にだけあるもの、共通するものを出力してくれます。
-
コマンド
comm [オプション] ファイル1 ファイル2
オプション | 説明 |
---|---|
-1 | 1列目(ファイル1のみに含まれる行)を出力しない |
-2 | 2列目(ファイル2のみに含まれる行)を出力しない |
-3 | 3列目(両方のファイルに含まれる行)を出力しない |
--check-order | 全ての行の組み合わせが一致していても、ソートされているかどうかを確認する |
--output-delimiter=文字列 | 列を区切る文字列を指定する(デフォルトはTAB |
3. 図示化しようと思ったわけ
- オプションが難しいから。
- オプションで指定したものを「出力しない」というのが分かりづらい。(落ち着いて考えればわかるものの、慌てているときに落ち着いて考えるのは不可能…orz)
4. 例
ファイル1 | ファイル2 |
---|---|
111 | |
222 | |
333 | 333 |
444 | |
555 | |
666 | 666 |
ファイル1は濃い青、ファイル2は薄い青で示します。
4.1 ファイル1のみにあるものを出したい場合
comm -23 ファイル1 ファイル2
4.2 ファイル2のみにあるものを出したい場合
comm -13 ファイル1 ファイル2
4.3 ファイル1,2 に共通するものを出したい場合(黄色いところ)
comm -12 ファイル1 ファイル2
4.4 ファイル1,2に共通しないものを出したい場合(白抜き以外のところ)
comm -3 ファイル1 ファイル2
5. 他
- ベン図を書くのはパワポが便利!