タイトルの通り、UNIXの「uniq」コマンドを使って、2つのファイルから

  • 論理和(OR)
  • 論理積(AND)
  • 排他的論理和(XOR)
  • 差集合(A-B)
  • 差集合(B-A)
を取得する方法を示します。

### 方法
#### 前提:入力ファイル 確認のため、以下のような、ファイルa・bを使用します。 ``` % cat a 1 2 3 4

% cat b 3 4 5 6

1
2
3
4
</div>
<div class="section">
    #### 論理和(OR)
    ファイルa・bをコンカチ・ソートしたものに対し、uniqコマンドを、特にオプションを付けずに実行すると、論理和を取得できます。

% cat a b | sort | uniq 1 2 3 4 5 6

1
2
3
4
</div>
<div class="section">
    #### 論理積(AND)
    ファイルa・bをコンカチ・ソートしたものに対し、uniqコマンドを 「-d」オプション付きで実行すると、論理積を取得できます。

% cat a b | sort | uniq -d 3 4

1
2
3
4
</div>
<div class="section">
    #### 排他的論理和(XOR)
    ファイルa・bをコンカチ・ソートしたものに対し、uniqコマンドを 「-u」オプションを付きで実行すると、排他的論理和を取得できます。

% cat a b | sort | uniq -u 1 2 5 6

1
2
3
4
5
</div>
<div class="section">
    #### 差集合(A-B)
    a・bの和集合とbの排他的論理和を取ることで、差集合(a-b)を取得することができます。<br/>
ここまでの応用です。

% (cat a b | sort -u; cat b) | sort | uniq -u 1 2

1
2
3
4
5
6
7
<br/>


</div>
<div class="section">
    #### 差集合(B-A)
    上記と同様に、a・bの和集合とaの排他的論理和を取ることで、差集合(b-a)を取得することができます。

% (cat a b | sort -u;cat a) | sort | uniq -u 5 6

1
2
3
4
5
以上。

</div>
</div>