| コマンド名称 |
diff |
最終更新日 |
2008-08-31 |
| コマンド機能 |
2つのファイル間の違いを探す |
| 機能概要 |
2 つのファイルを比較し、それらの違いを記述して出力する |
| コマンドの由来 |
differential file comparator |
| RPMパッケージ名 |
diffutils |
対象バージョン |
2.8.1 |
| コマンド書式 |
diff [-abcdefhilnpqrstuwyBHNPT] [-LINES] [-x PATTERN] [-C LINES] [-D NAME]
[-F REGEXP] [-I REGEXP] [-L LABEL] [-S FILE] [-U LINES] [-W COLUMNS] [-X
FILE] [--binary] [--brief] [--changed-group-format=fORMAT] [--context[=LINES]]
[--ed] [--exclude=PATTERN] [--exclude-from=FILE] [--expand-tabs] [--forward-ed]
[--from-file=FILE] [--hori- zon-lines=LINES] [--ifdef=NAME] [-ignore-all-space]
[-ignore-blank-lines] [--ignore-case] [--ignore-matching-lines=REGEXP]
[--ignore-space-change] [--inhibit-hunk-merge] [--initial-tab] [--label=LABEL]
[--left-column] [--line-format=FORMAT] [--minimal] [--new-file] [--new-group-format=FORMAT]
[--new-line-format=FORMAT] [--old-group-format=FORMAT] [--old-line-format=FORMAT]
[--paginate] [--rcs] [--recursive] [--report-identical-files] [--sdiff-merge-assist]
[--show-c-function] [--show-function-line=REGEXP] [--side-by-side] [--speed-large-files]
[--starting-file=FILE] [--supress-common-lines] [--text] [--to-file=FILE]
[--unchanged-group-format=FORMAT] [--unchanged-line-format=FORMAT] [--unidirectional-new-file]
[--uni-fied[=LINES]] [--width=COLUMNS] FROMFILE TOFILE
diff [-v] [--help] [--version] |
| オプション |
-LINES
異なっている部分の前後 LINES 行 (整数) 分のコンテクストを表示する。このオプションは出力形式自体の指定は行わない。したがって -c
や -u オプションと一緒に用いると、なんの効果も持たない。このオプションは obsolete である。 patch が正しく動作するには、少なくとも
2 行のコンテクストが必要である
-a, --text
ファイルがテキストには見えないような場合でも、全てのファイルをテキストとみなして
1 行ずつ比較を行う
-b, --ignore-space-change
空白の数だけが違う場合には違いを無視する
-c context
出力形式を用いる
-d, --minimal
アルゴリズムを変更し、より小さな差分が生成できるようにする。これを使うと diff は遅くなる (非常に遅くなる場合もある)
-e, --ed
ed のスクリプト形式で出力する
-f, --forward-ed
ed のスクリプトと一見同じような出力をする。しかし出力に現れる順序が異なる
[訳注: したがって ed では使えない]
-h
現在は何も効果を持たない。 Unix との互換性のために存在している
-i, --ignore-case
英大文字と小文字の違いを無視する
-l, --paginate
出力を pr に通してページ付けを行う
-n, --rcs
RCS 形式の diff を出力する。 -f と似ているが、それぞれのコマンドは処理する行数を指定する
-p, --show-c-function
変更がどの C 関数で行われたのかを表示する。 -F'^[_a-zA-Z$]' と同じ
-q, --brief
ファイルが違うかどうかだけを報告する。違いの詳細は報告しない
-r, --recursive
ディレクトリを比較するとき、見付かったサブディレクトリをすべて再帰的に比較する
-s, --report-identical-files
2つのファイルが同じだったときも報告する
-t, --expand-tabs
入力ファイルでのタブによる位置あわせを保存するため、出力のタブをスペースに展開する
-u unified
出力形式を用いる
-w, --ignore-all-space
行を比較するとき空白を無視する
-x PATTERN, --exclude=PATTERN
ディレクトリを比較するとき、ファイル名の base 部が PATTERN にマッチするファイルやサブディレクトリを無視する
-y, --side-by-side
side-by-side 出力形式を用いる
-B, --ignore-blank-lines
空行を挿入・削除するだけの変更を無視する
-C LINES, --context[=LINES]
context 出力形式を用い、LINES 行 (整数値) のコンテクストを表示する。LINES
が与えられなければ 3 行表示する。patch が正しく動作 するためには、少なくとも
2 行のコンテクストが必要であることが多い
-D NAME, --ifdef=NAME
if-then-else 形式でマージされた出力を行い、プリプロセッサの条件マクロに
NAME を用いる
-F REGEXP, --show-function-line=REGEXP
context 形式と unified 形式において、各差分 hunk (テキストブロック) に対し、その前方で
REGEXP にマッチした最後の行の一部を表示する
-H, --speed-large-files
小さな変更が大量にあるような大きなファイルを高速に扱うために、ヒューリスティックな手法を用いる
-I REGEXP, --ignore-matching-lines=REGEXP
REGEXP にマッチするような行を挿入・削除するだけの変更を無視する
-L LABEL, --label=LABEL
context 形式と unified 形式のヘッダに、ファイル名ではなく LABEL を用いる
-N, --new-file
ディレクトリを比較する際、片方のディレクトリにのみファイルが存在していたら、もう片方のディレクトリには同名の空っぽのファイルがあるように動作する
-P, --unidirectional-new-file
ディレクトリを比較する際、 2 番目のディレクトリにのみファイルが存在していたら、1 番目のディレクトリには同名の空っぽのファイルがあるように動作する
-S FILE, --starting-file=FILE
ディレクトリを比較する際、 FILE から始める。中断した比較を続行する際に利用できる
-T, --initial-tab
normal 形式や context 形式で、テキストの前に空白でなくタブを出力する。こうすると行中でのタブによる桁揃えが普通に見える
-U LINES, --unified[=LINES]
unified 出力形式を用い、 LINES 行 (整数値) のコンテクストを表示する。 LINES
が与えられなければ 3 行表示する。 patch が正しく動作するためには、少なくとも
2 行のコンテクストが必要であることが多い
-W COLUMNS, --width=COLUMNS
side-by-side 形式で、出力の幅を COLUMNS にする
-XFILE, --exclude-from=FILE
ディレクトリを比較する際、ファイル名の base 部が FILE のパターンのいずれかにマッチするファイルやサブディレクトリを無視する
--binary
データをバイナリモードで読み書きする (Linux では意味なし)
--changed-group-format=FORMAT
if-then-else 形式で、両方のファイルで異なる行グループの出力にFORMATを用いる
--from-file=FILE
FILE を各オペランドと比較する (FILE はディレクトリでも良い)。[訳注: 2.7
にはこのオプションは存在しない]
--horizon-lines=LINES
差分をもっともコンパクトに出力するために、違う部分の前後にある共通部分のそれぞれ
LINES 行を捨てずに保存する
--inhibit-hunk-merge
隣接する hunk の境界を移動して hunk をマージする動作を行わない
--left-column
side-by-side 形式で、共通な行は左側の列にしか表示しない
--line-format=FORMAT
if-then-else 形式で、全ての入力行の出力に FORMAT を用いる
--new-group-format=FORMAT
if-then-else 形式で、 2 番目のファイルだけにある行グループの出力に FORMAT
を用いる
--new-line-format=FORMAT
if-then-else 形式で、 2 番目のファイルだけにある行の出力に FORMAT を用いる
--old-group-format=FORMAT
if-then-else 形式で、 1 番目のファイルだけにある行グループの出力に FORMAT
を用いる
--old-line-format=FORMAT
if-then-else 形式で、 1 番目のファイルだけにある行の出力に FORMAT を用いる
--sdiff-merge-assist
sdiff(1) 用に追加情報を表示する。 sdiff が diff を実行するときにこのオプションを用いる。通常のユーザーがこのオプションを直接指定する場合はあまり想定されていない
--suppress-common-lines
side-by-side 形式で共通な行を表示しない
--unchanged-group-format=FORMAT
if-then-else 形式で、両方のファイルに共通な行グループの出力にFORMATを用いる
--unchanged-line-format=FORMAT
if-then-else 形式で、両方のファイルに共通な行の出力に FORMAT を用いる
--help
標準出力に使用方法のメッセージを出力して正常終了する
-v, --version
diff のバージョン番号を出力する |
| 引数 |
|
| 使用例 |
|
|