13.1 diff のオプション
GNU diff が受け付けるすべてのオプションを以下にまとめます。ほとんどのオプションには同等の名前が2つあり、一方は「-」を前置した1文字、他方は「--」を前置した長い名前です。引数を取らない1文字のオプションは、複数をコマンドラインの1語にまとめられます。-ac は -a -c と同等です。長い名前のオプションは、一意に識別できる任意の接頭部分まで省略できます。角括弧([ と ])は省略可能な引数を表します。
- -a
- --text
テキストに見えないファイルも含め、すべてのファイルをテキストとして扱い、行単位で比較します。バイナリファイルとテキスト比較の強制を参照してください。
- -b
- --ignore-space-change
空白の量の変化を無視します。空白とタブの間隔による相違を抑えるを参照してください。
- -B
- --ignore-blank-lines
空行の挿入・削除だけの変更を無視します。すべて空行である相違を抑えるを参照してください。
- --binary
バイナリモードでデータを読み書きします。バイナリファイルとテキスト比較の強制を参照してください。
- -c
コンテキスト出力形式を使い、3行のコンテキストを表示します。コンテキスト形式を参照してください。
- --color [=when]
ヘッダー、追加行、削除行などの異なるコンテキストを区別するために、色を使うか指定します。when は省略するか、次のいずれかにします。
--color を指定して when を省略すると、--color=auto と同等になります。
- -C lines
- --context[=lines]
コンテキスト出力形式を使い、lines(整数)行のコンテキストを表示します。lines を省略した場合は3行です。コンテキスト形式を参照してください。
patchが正常に動作するには、通常少なくとも2行のコンテキストが必要です。互換性のため、
diffは旧式のオプション構文 -lines もサポートします。これは -c、-p、または -u と組み合わせると有効になります。新しいスクリプトでは、代わりに -U lines(-C lines)を使ってください。- --changed-group-format=format
format を使い、両ファイルの異なる行を含む行グループを if-then-else 形式で出力します。行グループ形式を参照してください。
- -d
- --minimal
アルゴリズムを変更し、より小さな変更集合を見つけられる可能性があります。その分
diffは遅くなり、場合によっては大幅に遅くなります。diffの性能のトレードオフを参照してください。- -D name
- --ifdef=name
プリプロセッサーマクロ name を条件とする、マージ済みの「#ifdef」形式の出力を作ります。if-then-else によるファイルのマージを参照してください。
- -e
- --ed
有効な
edスクリプトとなる出力を作ります。edスクリプトを参照してください。- -E
- --ignore-tab-expansion
タブ展開による変化を無視します。空白とタブの間隔による相違を抑えるを参照してください。
- -f
- --forward-ed
edスクリプトに多少似た出力を作りますが、変更はファイル内で現れる順に並びます。順方向のedスクリプトを参照してください。- -F regexp
- --show-function-line=regexp
コンテキスト形式と unified 形式で、各相違ハンクの前にある、regexp に最後に一致した行の一部を表示します。正規表現に一致する行を表示するを参照してください。
- --from-file=file
file を各オペランドと比較します。file はディレクトリでもかまいません。
- --help
使用方法の概要を出力して終了します。
- --horizon-lines=lines
共通する先頭部分の末尾 lines 行と、共通する末尾部分の先頭 lines 行を捨てません。
diffの性能のトレードオフを参照してください。- -i
- --ignore-case
大文字・小文字の変化を無視し、両者を同等とみなします。大文字・小文字の相違を抑えるを参照してください。
- -I regexp
- --ignore-matching-lines=regexp
regexp に一致する行の挿入・削除だけの変更を無視します。すべての行が正規表現に一致する相違を抑えるを参照してください。
- --ignore-file-name-case
ファイル名の比較で大文字・小文字を無視します。たとえば d と e の再帰的比較では、d/Init と e/inIt の内容を比較することがあります。トップレベルでは「diff d inIt」が d/Init と inIt の内容を比較することがあります。ディレクトリを比較するを参照してください。
- -l
- --paginate
出力を
prに渡してページに分割します。diff出力のページ分割を参照してください。- -L label
- --label=label
コンテキスト形式(コンテキスト形式参照)と unified 形式(unified 形式参照)のヘッダーで、ファイル名の代わりに label を使います。RCS スクリプトを参照してください。
- --left-column
横並び形式で、共通する2行の左側の列だけを表示します。横並び形式の制御を参照してください。
- --line-format=format
format を使い、すべての入力行を if-then-else 形式で出力します。行形式を参照してください。
- -n
- --rcs
RCS 形式の diff を出力します。-f と似ていますが、各コマンドで対象行数を指定します。RCS スクリプトを参照してください。
- -N
- --new-file
一方のファイルが存在しない場合は、存在するが空であると扱います。ディレクトリを比較するを参照してください。
- --new-group-format=format
format を使い、第2ファイルだけから取った行グループを if-then-else 形式で出力します。行グループ形式を参照してください。
- --new-line-format=format
format を使い、第2ファイルだけから取った1行を if-then-else 形式で出力します。行形式を参照してください。
- --no-dereference
シンボリックリンクの参照先ではなく、リンク自体を処理します。2つのリンクが等しいとみなされるのは、参照先の名前が厳密に同じ場合だけです。
- --old-group-format=format
format を使い、第1ファイルだけから取った行グループを if-then-else 形式で出力します。行グループ形式を参照してください。
- --old-line-format=format
format を使い、第1ファイルだけから取った1行を if-then-else 形式で出力します。行形式を参照してください。
- -p
- --show-c-function
各変更がどの C 関数内にあるかを示します。C 関数の見出しを表示するを参照してください。
- --palette=palette
色付き出力が有効なときの配色を指定します。デフォルトは「rs=0:hd=1:ad=32:de=31:ln=36」で、削除行は赤、追加行は緑、行番号はシアン、ヘッダーは太字になります。
サポートされる機能は次のとおりです。
- -q
- --brief
相違の詳細を示さず、ファイルが異なるかどうかだけを報告します。異なるファイルの概要を示すを参照してください。
- -r
- --recursive
ディレクトリを比較するとき、見つかったサブディレクトリを再帰的に比較します。ディレクトリを比較するを参照してください。
- -s
- --report-identical-files
2つのファイルが同じ場合に報告します。ディレクトリを比較するを参照してください。
- -S file
- --starting-file=file
ディレクトリを比較するとき、ファイル file から開始します。中断した比較を再開するために使います。ディレクトリを比較するを参照してください。
- --speed-large-files
ヒューリスティックを使って、多数の小さな変更が散在する大きなファイルの処理を速めます。
diffの性能のトレードオフを参照してください。- --strip-trailing-cr
入力行の末尾にあるキャリッジリターンを除去します。バイナリファイルとテキスト比較の強制を参照してください。
- --suppress-common-lines
横並び形式で共通行を表示しません。横並び形式の制御を参照してください。
- -t
- --expand-tabs
入力ファイル内のタブによる整列を維持するため、出力でタブを空白へ展開します。タブ位置の整列を維持するを参照してください。
- -T
- --initial-tab
通常形式とコンテキスト形式で、行のテキストの前に空白の代わりにタブを出力します。これによって行内のタブによる整列が通常どおりに見えます。タブ位置の整列を維持するを参照してください。
- --tabsize=columns
タブ位置が表示上 columns 列ごと(デフォルト8)に設定されていると仮定します。タブ位置の整列を維持するを参照してください。
- --suppress-blank-empty
通常形式、コンテキスト形式、unified 形式で空行を表現するとき、改行前の空白を出力しません。末尾の空白を省くを参照してください。
- --to-file=file
各オペランドを file と比較します。file はディレクトリでもかまいません。
- -u
unified 出力形式を使い、3行のコンテキストを表示します。unified 形式を参照してください。
- --unchanged-group-format=format
format を使い、両ファイルに共通する行グループを if-then-else 形式で出力します。行グループ形式を参照してください。
- --unchanged-line-format=format
format を使い、両ファイルに共通する1行を if-then-else 形式で出力します。行形式を参照してください。
- --unidirectional-new-file
第1ファイルが存在しない場合は、存在するが空であると扱います。ディレクトリを比較するを参照してください。
- -U lines
- --unified[=lines]
unified 出力形式を使い、lines(整数)行のコンテキストを表示します。lines を省略した場合は3行です。unified 形式を参照してください。
patchが正常に動作するには、通常少なくとも2行のコンテキストが必要です。古いシステムでは、
diffは -u と組み合わせると有効になる旧式のオプション -lines をサポートします。POSIX 1003.1-2001(規格への適合参照)はこれを認めていないため、代わりに -U lines を使ってください。- -v
- --version
バージョン情報を出力して終了します。
- -w
- --ignore-all-space
行を比較するとき空白を無視します。空白とタブの間隔による相違を抑えるを参照してください。
- -W columns
- --width=columns
横並び形式で、1行あたり最大 columns 列(デフォルト130)の表示を出力します。横並び形式の制御を参照してください。
- -x pattern
- --exclude=pattern
ディレクトリを比較するとき、基本名が pattern に一致するファイルとサブディレクトリを無視します。ディレクトリを比較するを参照してください。
- -X file
- --exclude-from=file
ディレクトリを比較するとき、file に含まれるいずれかのパターンに基本名が一致するファイルとサブディレクトリを無視します。ディレクトリを比較するを参照してください。
- -y
- --side-by-side
横並び出力形式を使います。横並び形式の制御を参照してください。
- -Z
- --ignore-trailing-space
行末の空白を無視します。空白とタブの間隔による相違を抑えるを参照してください。