[Shell command] 2 つのリスト比較して一致することを確認する

作成日: 2019年12月19日

comm コマンドと sort コマンドを組み合わせると、2 つのリストが一致していることを確かめることができます。下記の例では、a.txtb.txt の内容を比較しています。

a.txt

5
10
15
20
25

b.txt

10
5
15
25
20

コマンド

comm -3 <(sort a.txt) <(sort b.txt)
  • comm コマンドは、1 つ目のリストだけに存在している行、2 つ目のリストだけに存在している行、どちらのリストにも存在している行を 3 カラムに分けて表示します。オプションで指定している -3 は、どちらのリストにも存在している行を表示しないようにします。つまり、リストの内容が一致している場合は、1 つ目のリストだけに存在している行、2 つ目のリストだけに存在している行のどちらも出力されませんので何も結果が表示されません。何も表示されないことを確かめることで、2 つのリストが一致していると判断をすることができます。
  • comm コマンドは、ソート済みのリストを比較することを期待しているので、予め sort コマンドでソートを行った結果を comm コマンドに渡しています。
Shell command