▼すべてを開く。
▲すべてを閉じる。
$ diff -c original.txt modified.txt *** original.txt 2005-07-20 16:43:24.000000000 +0900 --- modified.txt 2005-07-20 16:43:30.000000000 +0900 *************** *** 3,9 **** 2つのファイルを比較してその違いを出力する。 両方のファイルに存在する行 - originalファイルにだけ存在する行 ! 何らかの変更があった行 --- 3,9 ---- 2つのファイルを比較してその違いを出力する。 両方のファイルに存在する行 + modifiedファイルにだけ存在する行 ! なにか変更があった行
diffコマンドで-cオプション、元ファイル「original.txt」と変更後のファイル「modified.txt」を指定すると、2つのファイルの差分をcontext形式で出力する。
context形式では、元ファイルと変更後のファイルの該当部分の双方を別々に表示する。比較する2つのファイルの内容
元ファイル「original.txt」の内容 | 更新ファイル「modified.txt」の内容 |
diff | diff |
2つのファイルを比較してその違いを出力する。 | 2つのファイルを比較してその違いを出力する。 |
両方のファイルに存在する行 | 両方のファイルに存在する行 |
originalファイルにだけ存在する行 | |
modifiedファイルにだけ存在する行 | |
何らかの変更があった行 | なにか変更があった行 |
diffコマンドの出力
*** original.txt 2005-07-20 16:43:24.000000000 +0900 --- modified.txt 2005-07-20 16:43:30.000000000 +0900
1行目と2行目は、比較するファイルの情報である。
*** | 元ファイル |
--- | 更新ファイル |
*** 3,9 **** <- 元ファイルの3行目から9行目を表す 2つのファイルを比較してその違いを出力する。 両方のファイルに存在する行 - originalファイルにだけ存在する行 <- 元ファイルから削除された行 ! 何らかの変更があった行 <- 更新された行 --- 3,9 ---- <- 更新ファイルの3行目から9行目を表す 2つのファイルを比較してその違いを出力する。 両方のファイルに存在する行 + modifiedファイルにだけ存在する行 <- 更新ファイルに追加された行 ! なにか変更があった行 <- 更新された行
「*** 行,行 ***」は元ファイルの行の範囲を表す。
行頭に何も記号がない行は、双方のファイルで変更のない部分である。
context形式の差分情報は、元ファイルから削除された行、追加された行、変更された行を表す。
+ | 更新ファイルに追加された行 (元ファイルに存在しない) |
- | 元ファイルから削除された行 (更新ファイルに存在しない) |
! | 更新された行 |
$ diff -y -W 80 original.txt modified.txt diff diff 2つのファイルを比較してその違いを出力 2つのファイルを比較してその違いを出力 両方のファイルに存在する行 両方のファイルに存在する行 originalファイルにだけ存在する行 < > modifiedファイルにだけ存在する行 何らかの変更があった行 | なにか変更があった行
diffコマンドで-yオプション、-wオプションと桁数「80」、元ファイル「original.txt」と変更後のファイル「modified.txt」を指定すると、2つのファイルの差分をside-by-side 形式で横幅80桁で出力する。
side-by-side 形式では、元ファイルと変更後のファイルが2列で表示され、2つのファイルの間にマーカーが付けられる。ファイル間に付けられるマーカーの意味
マーカー | 意 味 |
---|---|
` ' | 対応する行が共通、同一である |
| | 対応する行が異なる |
< | 1番目のファイルにだけこの行が存在する |
> | 2番目のファイルにだけこの行が存在する |
( | 1 番目のファイルにだけこの行が含まれているが、違いは無視される。 |
) | 2 番目のファイルにだけこの行が含まれているが、違いは無視される。 |
\ | 対応する行が異なる。1番目の行だけに行末の改行がない。 |
/ | 対応する行が異なる。2番目の行だけに行末の改行がない。 |
$ diff -y -W 80 --left-column original.txt modified.txt diff ( ( 2つのファイルを比較してその違いを出力 ( ( 両方のファイルに存在する行 ( originalファイルにだけ存在する行 < ( > modifiedファイルにだけ存在する行 ( 何らかの変更があった行 | なにか変更があった行
diffコマンドで、-yオプション、-Wオプションでコラム数を80、--left-columnオプション、元ファイル「original.txt」と変更後のファイル「modified.txt」を指定すると、差分の共通行を左側にのみ表示するside-by-side 形式になる。
$ diff -u original.txt modified.txt --- original.txt 2005-07-20 16:43:24.000000000 +0900 +++ modified.txt 2005-07-20 16:43:30.000000000 +0900 @@ -3,7 +3,7 @@ 2つのファイルを比較してその違いを出力する。 両方のファイルに存在する行 -originalファイルにだけ存在する行 +modifiedファイルにだけ存在する行 -何らかの変更があった行 +なにか変更があった行
diffコマンドで-uオプション、元ファイル「original.txt」と更新ファイル「modified.txt」を指定すると、2つのファイルの差分をunified形式で出力する。
unified形式では、元ファイルと更新ファイルの該当部分を並べて表示する。元ファイル「original.txt」の内容 | 更新ファイル「modified.txt」の内容 |
diff | diff |
2つのファイルを比較してその違いを出力する。 | 2つのファイルを比較してその違いを出力する。 |
両方のファイルに存在する行 | 両方のファイルに存在する行 |
originalファイルにだけ存在する行 | |
modifiedファイルにだけ存在する行 | |
何らかの変更があった行 | なにか変更があった行 |
--- original.txt 2005-07-20 16:43:24.000000000 +0900 +++ modified.txt 2005-07-20 16:43:30.000000000 +0900
1行目と2行目は、比較するファイルの情報である。
--- | 元ファイル |
+++ | 更新ファイル |
「@@ -3,7 +3,7 @@」
3行目は、ファイル中の比較対象となった行の情報である。
「-3,7」 | 「-」が元ファイルを意味し、「3」が位置、「7」が行数
つまり、元ファイルの3行目から7行分を比較 |
「+3,7」 | 「+」が更新ファイルを意味し、「3」が位置、「7」が行数
つまり、更新ファイルの3行目から7行分を比較 |
2つのファイルを比較してその違いを出力する。 両方のファイルに存在する行 -originalファイルにだけ存在する行 <- 元ファイルから削除された行 +modifiedファイルにだけ存在する行 <- 元ファイルに追加された行 -何らかの変更があった行 <- 元ファイルから削除された行 +なにか変更があった行 <- 元ファイルに追加された行
unified形式の差分情報は、元ファイルを基準にして追加と削除で表す。
+ | 元ファイルに追加された行 |
- | 元ファイルから削除された行 |
修正や変更があった行も、削除と追加という形で表示される。