Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

comm

ソート後の2つのファイルを行単位で比較する
2015/05/20 08:00

対応OS: linux , freebsd, solaris
comm [-1] [-2] [-3] FILE1 [FILE2]

 commコマンドは、ソート済みの2つのファイルの内容を行単位に比較して、一方のファイル内容のみに存在する行と、両方のファイル内容に存在する行を出力します。

 出力内容は3列からなり、1列目にFILE1で指定したファイルの内容のみに存在する行を、2列目にFILE2で指定したファイルの内容のみに存在する行を、3列目に両方のファイルの内容に存在する行を表します。

HINT!
オプション
① -1
1列目、つまりFILE1で指定したファイルの内容のみに存在する行を出力しません。
② -2
2列目、つまりFILE2で指定したファイルの内容のみに存在する行を出力しません。
③ -3
3列目、つまりFILE1で指定したファイル内容と、FILE2で指定したファイル内容の、両方に存在する行を出力しません。
引数
① FILE1
FILE2で指定したファイルと、その内容を比較するソート済みのファイル名を指定します。
② FILE2
FILE1で指定したファイルと、その内容を比較するソート済みのファイル名を指定します。省略した場合は、標準入力から読み込みます。
2つのソート済みファイルの比較結果を表示する
[takeda]$ cat f01 
001
002
003
004
005
006
ファイル「f01」の内容
[takeda]$ cat f02
001
002
003x
004
005x
006
ファイル「f02」の内容
[takeda]$ comm f01 f02
001
002
003
003x
004
005
005x
006
2つのソート済みファイルの比較結果を一方に存在する行のみ表示する
[takeda]$ comm -3 f01 f02 
3列目を表示しない
003
003x
005
005x
[takeda]$
HINT!

 catコマンド

メールのいろいろ

 現在、筆者のところには毎日100通前後のメールが届きます。これが多いか少ないかは別として、これだけの数のメールが来ると、なかにはおかしなメールのひとつやふたつは混じっているものです。おかしなといっても内容のことではなくマナーに関することです。送信する相手が決まっていて相手の受信環境がわかっているときはその環境に合わせていろいろな機能(例えばHTML形式のメールなど)を好きに使ってよいと思うのですが、受信相手のわからないメーリングリストにおいては、テキスト形式でそして添付ファイルは付けずに、などの最低限のマナーは守りたいものです。UNIX環境で困るのが添付ファイルです。皆さん、相手がWindowsOSでOffice製品をインストールしているものと思って、Word文書ファイルを添付なさいます。筆者は、それをWindows環境まで持っていって参照しなければなりません。最近ではソフトが充実してきておリ、一部の添付ファイルはそのまま開けるようになりましたが、最低限相手の環境を意識するか、しなくてもよいメールを発信したいものです。

関連タグ

UNIXコマンド辞典トップページに戻る

All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5