名前

diff - ファイルの行単位での比較

書式

diff [OPTION]... FILES

説明

FILES を行単位で比較します。

ロングオプションにおいて必須の引数であるものは、 ショートオプションにおいても必須です。

--normal

通常の diff 形式で出力します (デフォルト)。

-q, --brief

ファイルに違いがあった場合のみ報告します。

-s, --report-identical-files

2 つのファイルが同じであった場合に報告します。

-c, -C NUM, --context[=NUM]

コンテキスト形式を使用し、 前後の NUM 行 (デフォルトは 3 行) を出力します。

-u, -U NUM, --unified[=NUM]

ユニファイド (unified) 形式を使用し、 前後の NUM 行 (デフォルトは 3 行) を出力します。

-e, --ed

ed スクリプトを出力します。

-n, --rcs

RCS 形式の diff を出力します。

-y, --side-by-side

2 段組で出力します。

-W, --width=NUM

NUM カラム以内で出力します (デフォルトは 130)。

--left-column

2 段組出力において共通する行は左側のみ表示します。

--suppress-common-lines

共通する行は表示しません。

-p, --show-c-function

それぞれの変更箇所が、 どの C 関数内であるかを表示します。

-F, --show-function-line=RE

RE に一致した直近の行を表示します。

--label LABEL

ファイル名とタイムスタンプの代わりに LABEL を使います (複数指定可)。

-t, --expand-tabs

出力にあたってタブ文字を空白文字に展開します。

-T, --initial-tab

タブ文字を出力することで、タブ位置を揃えます。

--tabsize=NUM

タブ位置を NUM カラムごとに設定します (デフォルトは 8)。

--suppress-blank-empty

空の出力行に対して、空白文字やタブ文字の出力を行いません。

-l, --paginate

ページ付けのために出力を 'pr' に受け渡します。

-r, --recursive

再帰的にサブディレクトリ内を比較します。

--no-dereference

シンボリックリンクはたどりません。

-N, --new-file

存在しないファイルは空のファイルとして扱います。

--unidirectional-new-file

存在しない最初のファイルは空のファイルとして扱います。

--ignore-file-name-case

ファイル名の比較にあたって大文字小文字を区別しません。

--no-ignore-file-name-case

ファイル名の比較にあたって大文字小文字を区別します。

-x, --exclude=PAT

PAT に一致するファイルを除外します。

-X, --exclude-from=FILE

FILE 内に記述されているいずれかのパターンに一致するファイルを除外します。

-S, --starting-file=FILE

ディレクトリ比較を行う際に FILE から処理を始めます。

--from-file=FILE1

FILE1 とすべての引数の間での比較を行います。 FILE1 はディレクトリとすることができます。

--to-file=FILE2

すべての引数と FILE2 との間での比較を行います。FILE2 はディレクトリとすることができます。

-i, --ignore-case

ファイル内容において、大文字小文字を区別しません。

-E, --ignore-tab-expansion

タブ展開による違いを無視します。

-Z, --ignore-trailing-space

行末のホワイトスペースは無視します。

-b, --ignore-space-change

ホワイトスペース数の違いを無視します。

-w, --ignore-all-space

ホワイトスペースをすべて無視します。

-B, --ignore-blank-lines

空行だけの違いは無視します。

-I, --ignore-matching-lines=RE

RE に一致する行は、 違いがないものとして無視します。

-a, --text

ファイルはすべてテキストファイルとして扱います。

--strip-trailing-cr

入力における文末のキャリッジリターンを取り除きます。

-D, --ifdef=NAME

'#ifdef NAME' diff を使ったマージ結果を出力します。

--GTYPE-group-format=GFMT

GTYPE 入力グループを GFMT を使ってフォーマットします。

--line-format=LFMT

入力行を LFMT を使ってフォーマットします。

--LTYPE-line-format=LFMT

LTYPE 入力グループを LFMT を使ってフォーマットします。

このフォーマットオプションは、 出力を詳細に制御します。

これは -D/--ifdef を一般化したものです。

LTYPE は 'old', 'new', 'unchanged' のいずれかです。

GTYPE は、 LTYPE に 'changed' を加えたもののいずれかです。

GFMT において (のみ) 指定できるもの:

%<

FILE1 からの行

%>

FILE2 からの行

%=

FILE1 と FILE2 に共通する行

%[-][WIDTH][.[PREC]]{doxX}LETTER

LETTER に対する printf 風の指定

LETTER は、新しいグループ用に以下のものを用います。 古いグループ用には、それを小文字にしたものを用います:

F

最初の行番号

L

最終の行番号

N

行数 = L-F+1

E

F-1

M

L+1

%(A=B?T:E)

A と B が等しければ T、そうでなければ E

LFMT において (のみ) 指定できるもの:

%L

行内容

%l

行内容、 ただし改行文字を除く

%[-][WIDTH][.[PREC]]{doxX}n

入力行番号に対する printf 風の指定

GFMT, LFMT に共通して指定できるもの:

%%

%

%c'C'

単一の文字 C

%c'\OOO'

8 進数コード OOO の文字

C

文字 C (その他の文字は、 それ自身を表現する)

-d, --minimal

できるだけ小さな差分を見つけるようにします。

--horizon-lines=NUM

差分の前後の共通部分を NUM 行出力します。

--speed-large-files

大きなファイルであって、小さな違いがたくさん含まれると想定して処理します。

--color[=WHEN]

カラー出力を行います。 WHEN は 'never', 'always', 'auto' のいずれかです。 --color だけを指定すると --color='auto' を意味します。

--palette=PALETTE

--color が有効な場合に、 利用するカラーを指定します。 PALETTE は、 terminfo の機能指定 (capability) をカンマで区切ったリストです。

--help

ヘルプを表示して終了します。

-v, --version

バージョン情報を出力して終了します。

FILES は 'FILE1 FILE2'、 'DIR1 DIR2'、 'DIR FILE'、 'FILE DIR' のいずれかです。 --from-file または --to-file を指定した場合、 FILE(s) に対する制約はありません。 FILE が '-' である場合、 標準入力から読み込みます。 終了ステータスは、 入力ファイルの内容が同じであれば 0、 異なっていれば 1、 何か問題が発生すれば 2 です。

著者

Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower

バグ報告

バグ報告は bug-diffutils@gnu.org までお願いします。
GNU diffutils ホームページ: <https://www.gnu.org/software/diffutils/>
GNU ソフトウェアの全般的なヘルプ: <https://www.gnu.org/gethelp/>

著作権

Copyright © 2021 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

関連項目

wdiff(1), cmp(1), diff3(1), sdiff(1), patch(1)

diff の完全なドキュメントは Texinfo マニュアルとしてメンテナンスされています。 infodiff の両プログラムが適切にインストールされていれば、 以下のコマンド

info diff

を実行して完全なマニュアルを参照できます。