diff3 - コマンド (プログラム) の説明 - Linux コマンド集 一覧表
- 名前
- 書式
- 説明
- オプション
- 出力形式
- 返り値
- 関連項目
- 注意
名前
diff3 - 3 つのファイル間にある違いを探す
書式
diff3
[-3aeimxAETX
] [-L
LABEL
] [--easy-only
] [--ed
]
[--initial-tab
] [--label=LABEL
] [--merge
]
[--overlap-only
] [--show-all
] [--show-overlap
]
[--text
] MINE OLDER YOUR
diff3
[-v
] [--help
] [--version
]
説明
diff3
は 3 つのファイルを比較し、それらの違いの説明を出力する。
比較対象となるファイルは
MINE
,
OLDER
,
YOURS
である。これら三つのファイルのうちの一つを
`
-
'としてもよく、その場合そのファイルは標準入力から読み込まれる。
通常
diff3
は自分の作業のために
diff
を起動する。しかし
BDIFF
環境変数に他のプログラムを設定すれば、
そのプログラムを使うように変更できる。
オプション
-
-3, --easy-only
-
-e
と似ているが、重複していない変更部分だけを出力する。
-
-a, --text
-
ファイルがテキストには見えないような場合でも、
全てのファイルをテキストとみなして 1 行ずつ比較を行う。
-
-e, --ed
-
OLDER
から
YOURS
へのすべての変更を
MINE
にマージするような
ed
スクリプトを生成する。
-
-i
-
System V 互換性のために、
ed
スクリプトの末尾に
`
w
' コマンドと `
q
'コマンドを生成する。このオプションは
-AeExX3
のいずれかのオプションと共に用いなければならない。また
-m
と同時に指定することはできない。
-
-m, --merge
-
ed スクリプトを 1 番目のファイルに適用し、その結果を標準出力に送る。
diff3
の出力を
ed
に送るのと異なり、
このオプションの動作はバイナリファイルや改行されていない行にも適用できる。
ed スクリプトのオプションが何も指定されなければ、
-A
を暗黙のうちに指定する。
-
-x, --overlap-only
-
-e
と似ているが、重複している変更だけを出力する点が異なる。
-
-A, --show-all
-
OLDER
から
YOURS
への全ての変更を
MINE
にマージする。重複している変更はブラケット行で囲って出力する。
-
-E, --show-overlap
-
-e
と似ているが、重複部分のブラケット行の第 1・第 3 行が異なる。
-E
では重複している変更は以下のようになる。
<<<<<<< MINE
lines from MINE
=======
lines from YOURS
>>>>>>> YOURS
-
-L
LABEL
, --label=
LABEL
-
-A
,
-E
,
-X
オプションのブラケット行に、ラベル
LABEL
を用いる。このオプションはそれぞれの入力ファイルに対応して
3 つまで与えることができる。
デフォルトのラベルは入力ファイルのファイル名である。したがって
"diff3 -L X -L Y -L Z -m A B C"
は
"diff3 -m A B C"
と同じように動作するが、
入力が
A
,
B
,
C
ではなく
X
,
Y
,
Z
のものであるかのような出力となる。
-
-T, --initial-tab
-
-
-X
-
-E
と似ているが、重複している変更だけを出力する点が異なる。
別の言い方をすれば、 -x
と似ているが、
-E
のように変更をブラケット行で囲う点が異なる。
-
"--help"
-
標準出力に使用方法のメッセージを出力して正常終了する。
-
-v, --version
-
diff3
のバージョン番号を出力する。
出力形式
それぞれの hunk (違いを表すテキストブロック) は
`====
' という行から始まる。 3 ファイルとも異なる hunk では
ただの `====
' となり、 1 ファイルが異なっている hunk では
`
1
', `
2
', `
3
'のいずれかが、その異なっているファイルを示すために付加される。
hunk には 2 つ、または 3 つの入力行のセットが含まれ、
それぞれに行セットがどのファイル由来のものかを示す
1 つまたは 2 つのコマンドが前置される。
デフォルトの動作では、入力行の前には 2 つのスペースが置かれ、
コマンドと区別できるようになっている。
-T
が指定されると、代わりにタブを用いるので、
入力にあったタブによる桁揃えが正しく保存される。
コマンド形式
-
FILE
:
L
a
-
この hunk は
FILE
の
L
行以降に現れるべきもので、そのファイルには存在していない。
このファイルを修正して他のファイルと同じにするには、
他の行からの hunk の行を追加しなければならない。例えば
`1:11a' は、その hunk はファイル 1 の 11 行目以降に追加すべきもので、
ファイル 1 には含まれていないこと示す。
-
FILE
:
R
c
-
この hunk には、
FILE
の行範囲
R
が含まれている。行範囲 R
は 2 つの行番号をコンマで区切ったものである。
数字が一つだったら 1 行だけの範囲と解釈される。
このファイルを編集して他のファイルと同じにするには、
その行範囲を、他のファイルからとってきて変更しなければならない。
例えば `2:11,13c' は、この hunk は 2 番目のファイルの
11〜13 行目からとってきたものであることを示す。
入力行セットの最後の行が改行で終わっていない場合は、
出力の次の行が `\
' で始まるので、改行で終わっている場合と区別できる。
返り値
diff3
は以下のどれかの値で終了する:
-
0
-
diff3
は成功し、重複している変更 (衝突) は存在しなかった。
-
1
-
重複が見付かった。
-
2
-
何らかのエラーが起こった。
関連項目
注意
プログラムのバグについては bug-gnu-utils@gnu.org に報告してください。
ページの更新は Ragnar Hojland Espinosa <ragnar@ragnar-hojland.com> が行っています。
- Linux Tips 関連記事
- Linux Tips(目次)
- Linux ディストリビューション一覧
- rpm のファイル名にあるi386とかi686とは
- 自分のマシンの情報を調べる
- cron の設定
- ssh の root ログインを禁止する
- ssh を、ユーザ、IPでアクセス制限
- 鍵交換方式によるssh接続
- 鍵交換方式によるssh接続( windowsから )
- 複数ファイル内の文字列を置換して上書き保存する
- あるグループをイニシャルグループとするユーザー一覧出力
- 複数ファイルのファイル名を一括変換する
- 連番ファイルをコマンド一発で作成する
- 中身がランダムなファイルを任意のサイズで作成する
- Linux ユーザーアカウントをロック・アンロックする