diff(1) FreeBSD 一般コマンドマニュアル

diff

前のページ 上に戻る 次のページ

diff



書式

       diff [options] from-file to-file


解説

       diff の最も単純な使用方法は、 from-fileto-file の 2 つ
       のファイルを指定することです。この場合、 diff は、そ の  2
       つのファイルの内容を比較します。ファイル名として、`-' を指
       定した場合は、標準入力から読み込みを行ないます。特殊な場合
       として、 diff - - は標準入力をそれ自身と比較します。

       もし、 from-file としてディレクトリを指定し to-file がディ
       レクトリでなかった場合、 diffto-file で指定したファ イ
       ル 名と同じ名前のファイルを from-file のディレクトリから捜
       して、そのファイルとの間で比較を行ないます。その逆に、 to-
       file   がディレクトリで from-file がディレクトリでない場合
       も、同様に処理します。なお、ディレクトリでない方のファイル
       に `-' を指定することはできません。

       from_fileto_file の両方がディレクトリだった場合、 diff
       は、両方のディレクトリ内でファイル名が同じファイル同士をア
       ル ファ ベット順に比較していきます。この時、 -r もしくは、
       --recursive オプションが指定されていれば、サブディレクトリ
       の中のファイルも再帰的に比較していきます。 diff は、ディレ
       クトリの実際の中身をファイルのように比較しません。標準入力
       は名前が無く``同じ名前を持ったファイル''の概念が適用できな
       いので、完全指定したファイルは標準入力であってはなり ま せ
       ん。

       diff   のオプションは - で始まります。よって通常 from_fileto_file- で始まりません。しかしながらそれ自体が引数
       である -- の後では、 残された引数が - で始まっていてもファ
       イル名として扱います。

   B>オB>プB>シB>ョB>ン
       GNU diff のすべてのオプションの要約は以下の通りです。ほ と
       んどのオプションは 2 つの同等な名前を持ちます。1 つは - で
       始まる 1 文字の名前で、もう 1 つは、 -- で始まる長い名前で
       す。 複数の 1 文字のオプション (引数を持たない場合) は、 1
       つの文字列にまとめてしまって構いません。つまり -ac-a
       -c  と同等です。長い名前のオプションはその名前の接頭辞が一
       意的に決まればどんな省略でもできます。鍵括弧 ([]) は、
       オプションが省略可能な引数を持つことを示します。


       -lines -c-u と組み合わせて、相違点の前後 (context) の
              表示行数を `数字' で指定します。このオプションだ け
              で は、出力フォーマットは変化しません。このオプショ
              ンは旧式 (obsolete) です。 patch をうまく働かせるた
              めには、少なくとも前後 2 行ずつは必要です。

       -a
       --text  テキストファイルでないようなものについても、全ての
              だけを報告します。

       -c     ``context output format'' を使用します。

       -C 行数
       --context[=行数]
              ``context  output format'' を使用します。不一致の行
              の前後に、`行数' で指定した行数だけ表示します (con-
              text)。  patch をうまく働かせるためには、少なくとも
              2 行の context が必要です。

       --changed-group-format=format
              if-then-else 形式の両方のファイルから異なった行を含
              む部分を出力するために format を使う。

       -d
       --minimal
              よ り小さな差分を見つけるアルゴリズムに変更します。
              このオプションを指定すると diff の処理速度は遅く な
              ります (かなり遅くなることもあります)。

       -D name
       --ifdef=name
              プ リ プ ロセッサマクロ name の条件記述を用いた if-
              then-else 形式にマージして出力します。

       -e
       --ed   ed のスクリプトの形式で出力します。

       --exclude=pattern
       -x pattern
              ディレクトリ単位の比較の時、ファイルやディレクト リ
              名が pattern にマッチした場合は、比較しないようにし
              ます。

       --exclude-from=file
       -X file
              ディレクトリ単位の比較の時、ファイルやディレクト リ
              名 が  file  の中に含まれるパターンにマッチした場合
              は、比較しないようにします。

       --expand-tabs
       -t     入力ファイルのタブによる位置調整をくずさないよ う、
              タブを空白に展開します。

       -f
       --forward-ed
              ed   のスクリプトと一見同じような出力をします。ただ
              し、ファイルに現われる順序が違います。

       -F regexp
       --show-function-line=regexp
              2   つ のファイルの先頭と末尾における共通部分のうち
              lines 行を残したままで差分を検索します

       -i
       --ignore-case
              英大文字と小文字の違いを無視します。

       -I regexp
       --ignore-matching-lines=regexp
              正規表現 regexp にマッチした行が追加あるいは削除 さ
              れていても無視します。

       --initial-tab
       -T      通常形式および context diff 形式において、テキスト
              先頭に空白文字ではなくタブを入れます。行に含まれ る
              タブが元と同じような形で見えます。

       -l
       --paginate
              出力を pr に通してページ付けを行ないます。

       -L label
       --label=label
              context diff 形式および unified diff 形式において、
              出力に付加されるファイル名の代わりに、 label で指定
              したラベルを使用します。

       --left-column
              2  段組形式において、2 つの共通の行の左の欄だけを表
              示します。

       --line-format=format
              format を用いて、すべての入力行を if-then-else 形式
              で出力します。

       -n
       --rcs  RCS形式の差分を出力します。 -f と似ていますが、各コ
              マンドには適用した行数がついた形となります。

       -N
       --new-file
              ディレクトリ単位の比較の時に、片方のディレクトリ に
              だ け存在するファイルに関しては、他のディレクトリで
              は空のファイルがあるものとして扱います。

       --new-group-format=format
              2 番目のファイルにだけ存在する部分をif-then-else 形
              式で出力するために format を使います。

       --new-line-format=format
              if-then-else  形式で 2 番目のファイルにだけ存在する
              行を出力するために使う format
              し か存在しないファイルがあれば、1 番目のディレクト
              リにもサイズ 0 のファイルがあるとみなします。

       -r
       --recursive
              ディレクトリ単位の比較の時に、サブディレクトリが あ
              れば、その配下も再帰的に検索して比較を行ないます。

       --report-identical-files
       -s      ファ イ ルの内容が同じだった時に、その旨を報告しま
              す。

       -S file
       --starting-file=file
              ディレクトリ単位の比較の時に、 file で指定した ファ
              イ ル名から実行します。これは、一連の比較作業を中断
              した後に途中から再開するのに便利です。

       --sdiff-merge-assist
              sdiff 作業の手助けになる補足の情報を表示します。 普
              通、 sdiffdiff を実行する際にはこのオプションを
              付けるので、ユーザが直接このオプションを使うこと は
              ありません。

       --show-c-function
              C  のプログラムを認識して、どの関数で変更があったか
              を表示します。

       --side-by-side
       -y     比較する 2 つのファイルの内容を、横に並べて表示しま
              す (side-by-side 形式)。

       --suppress-common-lines
              side-by-side 形式の表示で、同じ内容の行は表示しない
              ようにします。

       -u     unified diff 形式を用います。

       --unchanged-group-format=format
              if-then-else 形式で変更がなかった部分を出力するため
              に使う format

       --unchanged-line-format=format
              if-then-else 形式で変更がなかった行を出力するために
              使う format

       -U 行数
       --unified[=行数]
              unified diff 形式にします。不一致の行の前後に、` 行
              数'   で指定した行数のマッチした行も表示します。`行
              数' を省略した場合は 3 行になります。 patch をう ま
              く働かせるためには、少なくとも前後 2 行は必要です。


環境変数

       環境変数 DIFF_OPTIONSdiff のデフォルトオプションの組を
       保持可能です。これらのオプションは最初に解釈され、明示的な
       コマンド行パラメータにより上書きされます。


使用例

       ローカルソースツリーに対して行った変更 (新規ファイルを含み
       得る) をファイルに保存し、(おそらく send-pr(1) プログラ ム
       を使用して) 他人に見せられるようにするには、

       diff -crN foo.orig foo >foo.diff

       と 打ち込みます。ここで、 foo.origfoo は、ディレクトリ
       階層であってもかまいませんし、単一ファイルであってもかまい
       ません。


関連項目

       cmp(1),   comm(1),   diff3(1),   ed(1),  patch(1),  pr(1),
       sdiff(1)


戻り値

       比較結果として、違いが無かった場合は 0 を、違いが発見さ れ
       た場合は 1 を、何かエラーがおきた場合は 2 を返します。



GNU Tools                   22sep1993                     DIFF(1)

ABELNET VPSサービス