comm コマンド

目的

2 つのソート済みファイルに共通の行を選択またはリジェクトします。

構文

comm [  -1  -2  -3 ] File1 File2

説明

注: ファイル名の 1 つに - (負符号) を指定すると、comm コマンドは標準入力を読み取ります。

comm コマンドはパラメーター File1File2 を読み込み、デフォルトでは、標準出力に 3 つの欄から成る出力を書き込みます。欄は以下から構成されています。

  • File1 内だけにある行
  • File2 内だけにある行
  • File1File2 の両方にある行

File1File2 はどちらも現行の各国語環境で指定された照合シーケンスに従ってソートされていなければなりません。

フラグ

項目 説明
-1 1 番目の欄 (File1 内の行) の表示を抑制します。
-2 2 番目の欄 (File2 内の行) の表示を抑制します。
-3 3 番目の欄 (File1File2 に共通の行) の表示を抑制します。

終了状況

このコマンドは次の終了値を戻します。

項目 説明
0 すべての入力ファイルが正常に出力されました。
>0 エラーが発生しました。

  1. 各ファイルに対して固有の行および両ファイルに共通の行を表示するには、 以下のように入力します。
    comm things.to.do things.done
    ファイル things.to.dothings.done に以下のリストが含まれている場合、
    things.to.do
     
    buy soap
    groceries
    luncheon
    meeting at 3
    system update
    tech. review
     
    things.done
     
    2nd revision
    interview
    luncheon
    system update
    tech. review
    weekly report
    comm コマンドは以下を表示します。
           2nd revision
    buy soap
    groceries
           interview
                   luncheon
    meeting at 3
                   system update
                   tech. review
           weekly report
    最初の欄には things.to.do の中だけにある行が含まれています。2 番目の欄はタブ 1 つで字下げされ、things.done の中だけにある行が表示されています。3 番目の欄は、タブ 2 つで字下げされ、両ファイルに共通の行が表示されます。
  2. 片方のファイル内だけに現れる行を表示するには、 以下のように入力します。
    comm -23 things.to.do things.done
    これによって comm コマンドがリスト表示する 2 番目と 3 番目の欄が抑制されます。例 1 のファイルの場合、以下の内容が表示されます。
    buy soap
    groceries
    meeting at 3

ファイル

項目 説明
/usr/bin/comm comm コマンドが含まれています。