.TH DIFF 1 "22sep1993" "GNU Tools" "GNU Tools" .\" jpman %Id: diff.1,v 1.3 1997/05/16 00:15:44 h-nokubi Stab % .SH 名称 diff \- 2 つのテキストファイルの間の差を求める .SH 書式 .B diff [options] from-file to-file .SH 解説 .I diff の最も単純な使用方法は、 .I from-file と .I to-file の 2 つのファイルを指定することです。 この場合、 .I diff は、その 2 つのファイルの内容を比較します。ファイル名 として、`-' を指定した場合は、標準入力から読み込みを行ないます。 特殊な場合として、 .B "diff \- \-" は標準入力をそれ自身と比較します。 .PP もし、 .I from-file としてディレクトリを指定し .I to-file がディレクトリでなかった場合、 .I diff は .I to-file で指定したファイル名と同じ名前のファイルを .I from-file のディレクトリから捜して、そのファイルとの間で比較を行ないます。 その逆に、 .I to-file がディレクトリで .I from-file がディレクトリでない場合も、同様に処理します。なお、 ディレクトリでない方のファイルに `-' を指定することはできません。 .PP .I from_file と .I to_file の両方がディレクトリだった場合、 .I diff は、両方のディレクトリ内でファイル名が同じファイル同士をアルファベット順に 比較していきます。この時、 .B \-r もしくは、 .B \-\-recursive オプションが指定されていれば、 サブディレクトリの中のファイルも再帰的に比較していきます。 .I diff は、ディレクトリの実際の中身をファイルのように比較しません。標準入力は名前 が無く``同じ名前を持ったファイル''の概念が適用できないので、 完全指定したファイルは標準入力であってはなりません。 .PP .B diff のオプションは .BR \- で始まります。よって通常 .I from_file と .I to_file は .BR \- で始まりません。しかしながらそれ自体が引数である .B \-\- の後では、 残された引数が .BR \- で始まっていてもファイル名として扱います。 .SS オプション GNU .I diff のすべてのオプションの要約は以下の通りです。ほとんどのオプション は2つの同等な名前を持ちます。1つは .BR \- で始まる1文字の名前で、もう1つは、 .BR \-\- で始まる長い名前です。複数の1文字のオプション(引数を持たない場合)は、 1つの文字列にまとめてしまって構いません。つまり .B \-ac は .B "\-a \-c" と同等です。長い名前のオプションはその名前の接頭辞が一意的に決まればどんな 省略でもできます。鍵括弧 .RB ( [ と .BR ] ) は、オプションが省略可能な引数を持つことを示します。 .PP .TP .BI \- lines .B \-c か .B \-u と組み合わせて、相違点の前後(context)の表示行数を `数字' で指定します。このオプションだけでは、出力フォーマットは変化しません。 このオプションは旧式(obsolete)です。 .I patch をうまく働かせるためには、少なくとも前後 2 行ずつは必要です。 .TP .\" 以下では、同等な1文字オプションと長い単語のオプションが .\" まとめて表示されるようにアレンジされ直されている。 .B \-a .br .ns .TP .B \-\-text テキストファイルでないようなものについても、全てのファイルを テキストとみなして、1 行づつ比較していきます。 .TP .B \-b .br .ns .TP .B \-\-ignore\-space\-change 空白の数の違いを無視します。 .TP .B \-B .br .ns .TP .B \-\-ignore\-blank\-lines 空行が入っているもしくは足りないなどの違いは無視します。 .TP .B \-\-brief .br .ns .TP .B \-q ファイルの違いの詳細は表示せず、違っているかどうかだけを報告します。 .TP .B \-c ``context output format'' を使用します。 .\" これは、patch コマンドに .\" 適した形式で、違っている行だけでなく、その前後も数行出力する形式で .\" す。デフォルトでは 3 行づつ表示します。行数を変えるには、`-行数'オ .\" プションを使うか、次のオプションを使用します。 .TP .BI "\-C " 行数 .br .ns .TP .BI \-\-context[= 行数 ] ``context output format'' を使用します。不一致の行の前後に、`行数' で指定した行数だけ表示します (context) 。 .I patch をうまく働かせるためには、少なくとも 2 行の context が必要です。 .TP .BI \-\-changed\-group\-format= format if-then-else 形式の両方のファイルから異なった行を含む部分を出力する ために .I format を使う。 .TP .B \-d .br .ns .TP .BI \-\-minimal より小さな違いを見つけるアルゴリズムに変更します。このオプションを 指定すると .I diff の処理速度は遅くなります(かなり遅くなることもあります)。 .TP .BI "\-D " name .br .ns .TP .BI \-\-ifdef= name プリプロセッサマクロ .I name の条件記述を用いた if-then-else 形式にマージして出力します。 .TP .B -e .br .ns .TP .B \-\-ed .I ed のスクリプトの形式で出力します。 .TP .BI \-\-exclude= pattern .br .ns .TP .BI "\-x " pattern ディレクトリ単位の比較の時、ファイルやディレクトリ名が .I pattern にマッチした場合は、比較しないようにします。 .TP .BI \-\-exclude\-from= file .br .ns .TP .BI "\-X " file ディレクトリ単位の比較の時、ファイルやディレクトリ名が .I file の中に含まれる pattern にマッチした場合は、比較しないようにします。 .TP .B \-\-expand\-tabs .br .ns .TP .B \-t 入力ファイルのタブによる位置調整をくずさないよう、タブを空白に展開します。 .TP .B \-f .br .ns .TP .B \-\-forward\-ed .B ed のスクリプトと一見同じような出力をします。ただし、ファイルに 現われる順序が違います。 .TP .BI "\-F " regexp .br .ns .TP .BI \-\-show\-function\-line= regexp context diff 形式および unified diff 形式において、差分のブロック毎に、 差分のブロックに先行し、かつ .I regexp にマッチする行のうちでもっともブロックに近い行を出力します。 .TP .B \-h なにも機能はありません。通常の UNIX の diff との互換のためにあります。 .TP .B \-H .br .ns .TP .B \-\-speed\-large\-files 小さな違いがあちこちにあるような大きなファイルの処理を 高速化するヒューリスティックを用います。 .TP .BI \-\-horizon\-lines= lines 2つのファイルの先頭と末尾における共通部分のうち .I lines 行を残したままで差分を検索します .\" (通常は先頭と末尾の共通部分を削除してから検索を行います)。 .TP .B \-i .br .ns .TP .B \-\-ignore\-case 英大文字と小文字の違いを無視します。 .TP .BI "\-I " regexp .br .ns .TP .BI \-\-ignore\-matching\-lines= regexp 正規表現 .I regexp にマッチした行が追加あるいは削除されていても無視します。 .TP .B \-\-initial\-tab .br .ns .TP .B \-T 通常形式および context diff 形式において、テキスト先頭に空白文字ではなく タブを入れます。行に含まれるタブが元と同じような形で見えます。 .TP .B \-l .br .ns .TP .B \-\-paginate 出力を .I pr に通してページ付けを行ないます。 .TP .BI "\-L " label .br .ns .TP .BI \-\-label= label context diff 形式および unified diff 形式において、 出力に付加されるファイル名の代わりに、 .I label で指定したラベルを使用します。 .TP .BI \-\-left\-column 2段組形式において、2つの共通の行の左の欄だけを表示します。 .TP .BI \-\-line\-format= format .I format を用いて、すべての入力行を if-then-else 形式で出力します。 .TP .B \-n .br .ns .TP .B \-\-rcs RCS形式の差分を出力します。 .B \-f と似ていますが、各コマンドには適用した行数がついた形となります。 .TP .B \-N .br .ns .TP .B \-\-new\-file ディレクトリ単位の比較の時に、片方のディレクトリにだけ存在するファイルに 関しては、他のディレクトリでは空のファイルがあるものとして扱います。 .TP .BI \-\-new\-group\-format= format 2番目のファイルにだけ存在する部分をif-then-else 形式で出力するために .I format を使います。 .TP .BI \-\-new\-line\-format= format if-then-else 形式で 2番目のファイルにだけ存在する行を出力するために使う .I format .TP .BI \-\-old\-group\-format= format if-then-else 形式で 1番目のファイルにだけ存在する部分を出力するために使 う .I format .TP .BI \-\-old\-line\-format= format #### if-then-else 形式で 1番目のファイルにだけ存在する行を出力するために使う .I format .TP .B \-P .br .ns .TP .B \-\-unidirectional\-new\-file ディレクトリの比較において、2番目のディレクトリにしか存在しないファイル があれば、1番目のディレクトリにもサイズ 0 のファイルがあるとみなします。 .TP .B \-r .br .ns .TP .B \-\-recursive ディレクトリ単位の比較の時に、サブディレクトリがあれば、その配下も再帰的に 検索して比較を行ないます。 .TP .B \-\-report\-identical\-files .br .ns .TP .B \-s ファイルの内容が同じだった時に、その旨を報告します。 .TP .BI "\-S " file .br .ns .TP .BI \-\-starting\-file= file ディレクトリ単位の比較の時に、 .I file で指定したファイル名から実行します。これは、一連の比較作業を中断した後に 途中から再開するのに便利です。 .TP .B \-\-sdiff\-merge\-assist .I sdiff 作業の手助けになる補足の情報を表示します。普通、 .I sdiff が .I diff を実行する際にはこのオプションを付けるので、 ユーザーが直接このオプションを使うことはありません。 .TP .B \-\-show\-c\-function C のプログラムを認識して、どの関数で変更があったかを表示します。 .TP .B \-\-side\-by\-side .br .ns .TP .B \-y 比較する 2 つのファイルの内容を、横に並べて表示します(side-by-side 形式)。 .TP .B \-\-suppress\-common\-lines side-by-side 形式の表示で、同じ内容の行は表示しないようにします。 .TP .B \-u unified diff 形式を用います。 .TP .BI \-\-unchanged\-group\-format= format if-then-else 形式で変更がなかった部分を出力するために使う .I format .TP .BI \-\-unchanged\-line\-format= format if-then-else 形式で変更がなかった行を出力するために使う .I format .TP .BI "\-U " 行数 .br .ns .TP .BI \-\-unified[= 行数 ] unified diff 形式にします。不一致の行の前後に、`行数'で 指定した行数のマッチした行も表示します。`行数'を省略した場合は 3行になります。 patch をうまく働かせるためには、少なくとも前後 2 行は必要です。 .TP .B \-v .br .ns .TP .B \-\-version .I diff のバージョンを表示します。 .TP .B \-w .br .ns .TP .B \-\-ignore\-all\-space 比較時に、空白は無視するようにします。 .TP .BI "\-W " columns .br .ns .TP .BI \-\-width= columns side-by-side 形式の表示で、1 行の幅を .I columns で指定した文字数にします。 .SH 関連項目 cmp(1), comm(1), diff3(1), ed(1), patch(1), pr(1), sdiff(1) .SH 戻り値 比較結果として、違いが無かった場合は 0 を、違いが発見された場合は 1 を、 何かエラーがおきた場合は 2 を返します。