• 締切済み

UNIXのdiffコマンドについて

UNIXのdiffコマンドは、ファイルを比較するときに同じテキストであっても時々は違っていると出力されるケースがあると聞きましたが、詳しく内容をご存じの方教示願います。(OS[solaris,HP-UX,AIX,Linux]の違いにも関係があるようですが?)

みんなの回答

  • 1Yen
  • ベストアンサー率28% (11/39)
回答No.2

> 同じテキストであっても時々は違っていると出力されるケースがある それがあれば、tailkuppaさんのおっしゃるように diff のバグです。 それをおっしゃられた方は X-Window 上で Copy & Past して、tab が 空白に変換されたのに気づかず同じ物なのに、diff で違っているように 出力されたとか、既に書かれているように漢字コード、改行コードの違いに 気づかなかった場合などでしょう。

y_i
質問者

お礼

皆さん回答有難うございます。 残念なら期待していた回答とは全く違っていましたが、やむを得ないかと思いました。回答のように使用通りの動きでなければバグであろことは存じています。 聞くところによると、Diffコマンドでは同じテキストが100%同じとならないことだといったことの説明後欲しかったのです。 もしご存じの方がおられたらよろしくお願いします。

  • tailkuppa
  • ベストアンサー率53% (52/98)
回答No.1

本当にデータが同じなのに差分が出るようであれば、それはdiff コマンドのバグのように思えます。 上げられているOS についてあまり詳しくないので、あまり参考にならないかも知れませんが一般的に考えられそうな原因をあげておきます。 ・改行コードの違い  お書きになったUNIX系OS の間では基本的に違いはないはずなのですが、Windows や MacOS で作成されたファイルとの比較の場合は、UNIX 系のOS と改行を表現する文字が異なりますので、見ためが同じでもデータ的には異なっている場合があります。 ・日本語文字コードの違い  日本語を表現する文字コードは何種類かあって、各OS によって取扱いが多少異なります。たいていのOS ではきちんと設定してあればすべての種類の日本語文字コードを取り扱えますが、デフォルト状態での取扱い方が異なるため、デフォルト以外の文字コードの文字をうまく取り扱えない場合があります。  また、エディタやページャ等で同じに見えても、文字コード変換を行って同じに見せている場合があるので、実際のファイルは同じにならない場合があります。 ・diff自身による取扱いの違い  これは実際には異なるデータが同じと判定されてしまう場合なので、お書きになった状態とは逆なのですが、diff のオプションで、スペース文字の違いを無視したりすることが可能だったと思います。  標準仕様はあるはずですが、OS によっては拡張されていたりしますので、場合によってはオプションにも注意が必要だと思います。

関連するQ&A