カテゴリ: Linuxコマンド集 更新日: 2026/06/08

commコマンドの使い方を完全ガイド!-2オプションでファイル比較を効率化する方法

comm -2オプション|2列目(ファイル2専用行)を表示しない
comm -2オプション|2列目(ファイル2専用行)を表示しない

先生と生徒の会話形式で理解しよう

生徒

「Linuxで2つのファイルの違いを見たいときってどうすればいいですか?」

先生

「その場合はcommコマンドが便利ですよ。2つのファイルを比較できます。」

生徒

「でも表示される内容が多くて見づらいときがあります…」

先生

「そういうときは-2オプションを使うと、特定の列を非表示にできます。今回はそれをわかりやすく解説します。」

1. commコマンドとは?

1. commコマンドとは?
1. commコマンドとは?

commコマンドは、Linuxで2つのテキストファイルを比較するための基本コマンドです。

例えば、「ファイルAにしかない行」「ファイルBにしかない行」「両方に共通する行」を分類して表示してくれます。

これは、ファイルの違いを調べたり、データの重複を確認したりするときに非常に役立ちます。

Windowsでいうと、2つのメモ帳の内容を見比べる作業を、自動でやってくれるようなイメージです。

2. commコマンドの基本構造

2. commコマンドの基本構造
2. commコマンドの基本構造

commコマンドの基本的な使い方は次の通りです。


comm ファイル1 ファイル2

このコマンドを実行すると、結果は3つの列に分かれて表示されます。

  • 1列目:ファイル1にだけ存在する行
  • 2列目:ファイル2にだけ存在する行
  • 3列目:両方のファイルに共通する行

ただし、このコマンドを使う前にファイルはソートされている必要があります

3. -2オプションとは?

3. -2オプションとは?
3. -2オプションとは?

-2オプションは、2列目を表示しないためのオプションです。

つまり、「ファイル2にだけ存在する行」を非表示にします。

これにより、次のような情報だけを確認できます。

  • ファイル1にのみ存在する行
  • 両方に共通する行

「ファイル2の独自データは不要」という場面で役立ちます。

4. 実際に使ってみよう

4. 実際に使ってみよう
4. 実際に使ってみよう

まずはサンプルファイルを作成します。


echo -e "apple\nbanana\ncherry" | sort > file1.txt
echo -e "banana\ncherry\ndate" | sort > file2.txt

次に、通常のcommコマンドを実行します。


comm file1.txt file2.txt
apple
        date
                banana
                cherry

表示が3列になっているため、少し見づらいですね。

5. -2オプションを使った例

5. -2オプションを使った例
5. -2オプションを使った例

では、-2オプションを使ってみましょう。


comm -2 file1.txt file2.txt
apple
        banana
        cherry

この結果では、ファイル2にしかない「date」が表示されなくなっています。

つまり、「file2.txtだけのデータ」は無視され、「file1.txtと共通データ」だけに集中できます。

6. よくある使いどころ

6. よくある使いどころ
6. よくある使いどころ

comm -2は、次のような場面で活躍します。

  • 基準ファイルと比較して共通データを確認したい
  • ファイル1を中心に差分をチェックしたい
  • 不要なデータ(ファイル2のみの行)を除外したい

例えば、ユーザーリストやログファイルの比較などでよく使われます。

7. 他のオプションとの組み合わせ

7. 他のオプションとの組み合わせ
7. 他のオプションとの組み合わせ

commコマンドは、他のオプションと組み合わせることでさらに便利になります。

例えば、-1-2を同時に使うとどうなるでしょうか。


comm -1 -2 file1.txt file2.txt
banana
cherry

この場合、「共通する行だけ」が表示されます。

このように、オプションを組み合わせることで表示内容を自由にカスタマイズできます。

8. 注意点とポイント

8. 注意点とポイント
8. 注意点とポイント

commコマンドを使う際の重要なポイントを押さえておきましょう。

  • 必ずファイルはソートしておくこと
  • 行単位で比較される
  • タブで列が区切られている

ソートされていない場合、正しい結果が出ないので注意してください。


sort file1.txt -o file1.txt
sort file2.txt -o file2.txt

このように事前に並び替えをしておくと安心です。

まとめ

まとめ
まとめ

commコマンドはLinuxでファイル比較を行うための基本的かつ重要なコマンドであり、テキストファイルの差分確認やデータ分析、ログ調査、ユーザー一覧の比較など幅広い場面で活用できます。特にcomm -2オプションは、ファイル比較の際にファイル2のみに存在する行を非表示にすることができるため、ファイル1を基準にして比較したい場合に非常に便利です。Linux初心者にとっては、コマンドの出力が三つの列に分かれて表示される点が最初は分かりづらい部分ですが、オプションを活用することで必要な情報だけに絞って表示することが可能になります。

commコマンドを使う際に最も重要なポイントは、比較対象となるファイルが事前にソートされている必要がある点です。ソートされていない状態で実行すると正しい比較結果が得られないため、必ずsortコマンドを使って並び替えを行いましょう。Linuxのコマンド操作では、このような前処理が結果の正確性に直結するため、習慣として身につけておくことが大切です。

また、commコマンドは行単位で比較を行うため、改行単位でデータが管理されているテキストファイルとの相性が非常に良いです。例えばログファイルの差分確認や、データベースから出力したリストの比較など、実務でも頻繁に利用されます。Linux環境で効率よくデータ処理を行うためには、このようなテキスト処理コマンドを組み合わせて使いこなすスキルが求められます。

さらに、commコマンドは他のオプションと組み合わせることで、より柔軟な使い方が可能になります。例えば-1オプションと-2オプションを同時に指定することで、両方のファイルに共通する行だけを抽出することができます。このようにオプションの組み合わせによって、目的に応じたデータ抽出が簡単に実現できる点も大きな魅力です。

Linuxコマンドの学習においては、一つ一つのコマンドの意味を理解するだけでなく、実際に手を動かして試すことが重要です。今回紹介したcommコマンドと-2オプションも、実際にサンプルファイルを作成して実行することで理解が深まります。繰り返し練習することで、ファイル比較やデータ抽出のスキルが自然と身についていきます。

サンプルコードで復習しよう


echo -e "alpha\nbeta\ngamma" | sort > sample1.txt
echo -e "beta\ngamma\ndelta" | sort > sample2.txt

comm -2 sample1.txt sample2.txt
alpha
        beta
        gamma

上記のように、comm -2を使用することでファイル2にのみ存在するデータを除外し、ファイル1に存在するデータと共通データだけを簡単に確認できます。Linuxコマンドの中でもシンプルでありながら実用性の高いコマンドであるため、しっかり理解しておくことが重要です。

先生と生徒の振り返り会話

生徒

「commコマンドはファイルを比較できるってことは分かりましたが、オプションがたくさんあって少し難しく感じます」

先生

「最初は全部覚えようとしなくて大丈夫です。今回のように-2オプションのようなよく使うものから覚えていけば問題ありません」

生徒

「-2オプションはファイル2のデータを非表示にする機能でしたよね」

先生

「その通りです。ファイル1を基準に比較したいときにとても役立ちます」

生徒

「でも、ファイルをソートしないといけないのは少し面倒ですね」

先生

「確かにひと手間ですが、正確な比較のためには必要です。Linuxでは前処理も重要なスキルです」

生徒

「なるほど。sortコマンドと一緒に使うことを意識します」

先生

「その意識はとても大切です。コマンドを組み合わせて使うことで、より高度なデータ処理ができるようになります」

生徒

「少しずつですがLinuxコマンドの理解が深まってきました」

先生

「その調子です。実際に手を動かしながら学ぶことで、確実にスキルとして身についていきます」

関連記事:
カテゴリの一覧へ
新着記事
New1
圧縮・アーカイブ
bunzip2 -fオプションの使い方を完全ガイド!Linuxで圧縮ファイルを強制上書きする方法
New2
テキスト・データ処理
headコマンドとは?Linuxでファイルの先頭部分を表示する基本
New3
Linuxコマンドの基本
Linuxのパスの基本!絶対パスと相対パスの違いを初心者向けにやさしく解説
New4
ディスクとファイルシステム管理
mountコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイルシステムマウント方法
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
テキスト・データ処理
catコマンドとは?Linuxでファイル内容を表示・連結する基本
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門
No.4
Java&Spring記事人気No4
圧縮・アーカイブ
tarコマンドの使い方を完全ガイド!初心者でもわかるLinuxのアーカイブ作成と解凍の基本