diff

二つのファイル、またはディレクトリを比較して違いを探します。


書式

diff [オプション] ファイル名1 ファイル名2
diff [-v] [--help] [--version]

▲PageTop

オプション

オプション名 説明
-LINES バージョン2.8.1では無効です。
-a,--text ファイルの種類を判断せず強制的に一行ごとの比較処理を行います。
-b,--ignore-space-change 空白文字の数を比較しません。
-c 出力形式をcontext出力形式に設定します。
-d,--minimal より小さな差分データを生成するためアルゴリズムを変更します。
-e,--ed 出力形式をedスクリプトに設定します。
-f,--forward-ed 出力形式をedスクリプト類似の形式に設定します。
-h 無効のオプションです。 Unixとの互換性を保つためだけに維持されています。
-i,--ignore-case 処理の際、大文字小文字の区別をつけません。
-l,--paginate 出力の際prコマンドを通します。
-n,--rcs 出力形式をRCS形式に設定します。
-p,--show-c-function C言語のソースに対して処理を行った際、変更箇所が存在する関数を表示します。
-q,--brief 比較するファイル間での相違の有無のみを判断します。
-r,--recursive ディレクトリの比較を行う際に、発見したサブディレクトリの比較を再帰的に行います。
-s,--report-identical-files 比較するファイル間で全く違いが存在しなかった場合にも報告を行います。
-t,--expand-tabs 入力ファイルでタブが存在する部分を出力する場合、タブのスペースへの展開を行います。
-u 出力形式をunified出力形式に設定します。
-w,--ignore-all-space 行の比較を行う際にスペースは無視します。
-x 文字列,--exclude=文字列 ディレクトリの比較を行う際に、base部が指定された文字列にマッチする名前のファイルやディレクトリは処理の対象外とします。
-y,--side-by-side 出力形式をside-by-side出力形式に設定します。
-B,--ignore-blank-lines 空行の有無だけの違いについては無視します。
-C 行数,--context[=行数] 出力形式がcontext出力形式である場合前後LINES行分のデータを出力します。
-D 文字列,--ifdef=文字列 入力したファイルをマージしたデータを出力する場合#if~#else if~#endif片側の記述を無効にします。条件となるマクロはNAMEで指定された文字列を指定します。
-E,--ignore-tab-expansion タブを展開したことにより起こるスペース文字数の変化は無視します。
-F REGEXP,--show-function-line=REGEXP 出力形式がcontext出力形式かunified形式の場合、差分データブロックを前方からREGEPXを検索文字列として検索しマッチした一番近い行を出力します。
-H,--speed-large-files ヒューリスティックな手法を用いることにより小規模な相違が大量に存在する場合の処理を高速にします。
-I REGEXP,--ignore-matching-lines=REGEXP REGEXPで指定された正規表現にマッチする行については比較の対象外とします。
-L 文字列,--label=文字列 出力形式がcontext出力形式かunified形式である場合、ファイル名では指定した文字列をヘッダに使用します。
-N,--new-file ディレクトリを比較する際、片側にだけ存在するファイルについては本来存在しない側にサイズ0の同名のファイルがあるものとして処理を行います。
-P,--unidirectional-new-file ディレクトリを比較する際、二つ目に指定したディレクトリにのみ存在するディレクトリについては一つ目に指定したディレクトリ内に同名の空のディレクトリがあるものとして処理を行います。
-S ファイル・ディレクトリ,
--starting-file=ファイル・ディレクトリ
ディレクトリの比較を行う場合、指定のファイル又はディレクトリから処理を開始します。
-T,--initial-tab 出力形式がnormal形式がcontext形式の場合に文字データの前に表示されるスペースをタブに置き換えます。
-U 行,--unified[=行] 出力形式がunified出力形式である場合に、相違が発見された行の前後の行を出力します。
-W 幅,--width=幅 出力形式がside-by-side形式の場合に指定される値に出力の幅を設定します。
--binary データ読み書きの形式をバイナリモードに設定します。
--changed-group-format=出力形式 FORMATで指定される出力形式で双方のファイルで異なる行のグループを出力を行います。
--diff-program= プログラム名 指定されるdiffと互換性のある外部プログラムを用いて比較処理を行います。
--from-file=ファイル名 各オペランドと指定されるファイルとの比較処理を行います。
--horizon-lines=行数 指定される行数分相違部分の前後にある共通部分を保存することにより、差分出力をコンパクトにします。
--ignore-file-name-case ファイル名を比較する際に大文字小文字の区別をつけません。
--inhibit-hunk-merge hunkの境界が移動するようなマージ処理は行いません。
--left-column 出力形式がside-by-side形式の場合に共通する行を左側の列にのみ出力します。
--line-format=出力形式 出力形式がif-then-else形式の場合に指定された形式で全ての行を出力します。
--new-group-format=出力形式 出力形式がif-then-else形式の場合、後に指定されたファイルのみに存在する行のグループを指定された形式で行います。
--new-line-format=出力形式 出力形式でif-then-else形式の場合、後に指定されたファイルのみに存在する行を指定された形式で行います。
--no-ignore-file-name-case ファイル名を比較する場合に大文字小文字の区別をつけます。
--old-group-format=出力形式 出力形式がif-then-else形式の場合、先に指定されたファイルのみに存在する行グループを指定された形式で出力します。
--old-line-format=出力形式 出力形式がif-then-else形式の場合、先に指定されたファイルのみに存在する行を指定された形式で出力します。
--sdiff-merge-assist sdiff用追加情報の表示処理を行います。
--strip-trailing-cr 行末に存在する改行コード(CR)を取り除く処理を行います。
--suppress-common-lines 出力形式がside-by-side形式の場合、比較するファイル間に共通で存在する行の表示を行いません。
--unchanged-group-format=出力形式 出力形式がif-else-then形式の場合、比較を行う双方のファイルに共通する行グループを指定された形式で出力します。
--unchanged-line-format=出力形式 出力形式がif-else-then形式の場合、比較を行う双方のファイル間に共通で存在する行を指定された形式で出力します。
--help 使用方法を表示します。
-v,--version バージョン情報を表示します。

▲PageTop

実行例

二つのファイル(「SampleText01.txt」、「SampleText02.txt」が存在するものとします。)を比較します。

  1. 二つのファイル「SampleText01.txt」、「SampleText02.txt」を表示します。
  2. 二つのファイル「SampleText01.txt」、「SampleText02.txt」を比較します。

実行結果

$ cat SampleText01.txt [Enter]
SampleText01
UNIX-LINUX COMMAND diff
コマンドリファレンス IT専科
$ cat SampleText02.txt [Enter]
SampleText02
UNIX-LINUX COMMAND diff
command reference itsenka
$ diff SampleText05.txt SampleText06.txt [Enter]
1c1
< SampleText01
---
> SampleText02
3c3
< コマンドリファレンス IT専科
---
> command reference itsenka
        

▲PageTop