sdiff - コマンド (プログラム) の説明 - Linux コマンド集 一覧表
名前
sdiff - 2 つのファイルの違いを見つけ、対話的にマージを行う
書式
sdiff
[-abdilstBEHW
] [-o OUTFILE
] [-w COLUMNS
]
[-I REGEXP
] [--diff-program=PROGRAM
]
[--expand-tabs
] [-ignore-all-space
]
[-ignore-blank-lines
] [--ignore-case
]
[--ignore-matching-lines=REGEXP
]
[--ignore-space-change
]
[--ignore-tab-expansion
]
[--left-column
] [--minimal
]
[--output=OUTFILE
]
[--speed-large-files
]
[--strip-trailing-cr
]
[--supress-common-lines
]
[--text
] [--width=COLUMNS
]
FROMFILE TOFILE
sdiff
[-v
] [--help
] [--version
]
説明
sdiff
は 2 つのファイルを対話的にマージする。
-o
で指定されていれば結果は
OUTFILE
に出力される。それ以外の場合は side-by-side 形式で違いを生成する。
FROMFILE
がディレクトリで
TOFILE
がディレクトリでない場合、
sdiff
は
FROMFILE
にある、ファイル名が
TOFILE
と同じものを比較の対象にする (逆も同じ)。
FROMFILE
と
TOFILE
の両方にディレクトリを指定することはできない。
入力ファイルに
`
-
'を用いることはできない。
[訳注: 多くのコマンドでは
`
-
'は標準入力の意味になる]
通常
sdiff
は
diff
を呼び出して処理を行う。
しかし
DIFF
環境変数を他のプログラムに設定すれば、そのプログラムを使うように変更できる。
また
EDITOR
環境変数を設定すると、使用するエディタも変更できる。
オプション
- -a, --text
- テキストのように見えないファイルがあっても、 全てのファイルをテキストとみなして 1 行ずつ比較していく。
- -b, --ignore-space-change
- 空白の数の違いを無視する。
- -d, --minimal
- アルゴリズムを変更する (おそらく小さな違いも見付かるようになる)。 これを用いると sdiff は遅くなる (時には非常に遅くなる)。
- -i, --ignore-case
- 英大文字と小文字の違いを無視する。
- -l, --left-column
- 共通の行に対しては、左側の列だけを表示する。
- -o OUTFILE , --output= OUTFILE
- マージされた出力を OUTFILE に書き込む。マージを行うためにはこのオプションが必要である。
- -s, --suppress-common-lines
- 共通な行を表示しない。
- -t, --expand-tabs
- 出力でタブ文字をスペースに変換する。 入力ファイルでのタブ文字による桁揃えが保存される。
- -w COLUMNS , --width= COLUMNS
- 出力の幅を COLUMNS 桁にする。 歴史的な理由から、 diff (1) ではこのオプションは -W になっていることに注意。
- -B, --ignore-blank-lines
- 空行を挿入・削除するだけの違いは無視する。
- -E, --ignore-tab-expansion
- タブ展開によるスペースの変更を無視する。
- -H, --speed-large-files
- 小さな変更が大量にあるような大きなファイルを高速に扱うために、 発見的推測手法を用いる。
- -I REGEXP , --ignore-matching-lines= REGEXP
- 正規表現 REGEXP にマッチした行を挿入・削除するだけの違いは無視する。
- -W
- 行の比較の際に空白を無視する。 歴史的な理由から、 diff (1) ではこのオプションは -w になっていることに注意。
- --diff-program= PROGRAM
- ファイルの比較するために diff と互換性のある 外部プログラム PROGRAM を用いる。
- --strip-trailing-cr
- 行末の CR を取り除く。 行末のマーカとして CRLF を使うシステムの出力を処理するときに役立つ。
- "--help"
- 標準出力に使用方法のメッセージを出力して正常終了する。
- -v, --version
- sdiff のバージョン番号を出力する。
マージ
共通行のブロック (と空白の溝) は、 1 番目のファイルから出力にコピーされる。 異なっている行ブロックのあとには、 sdiff は ` % 'でプロンプトを出して一時停止し、 以下のコマンドのどれか 1 つが入力されるのを待つ。
- e
- 両方のバージョンとも捨てる。内容が空の一時ファイルをテキストエディタで開き、 エディタ終了後のファイルの内容を出力にコピーする。
- eb
- 両方のバージョンを結合した結果をエディタで編集し、 終了後の内容を出力にコピーする。
- ed
- ` eb ',と似ているが、各バージョンのブロックの前にヘッダを置き、 どのファイルのどの行のものかがわかるようにする。
- el
- 左側のバージョンをエディタで編集し、 終了後の内容を出力にコピーする。
- er
- 右側のバージョンをエディタで編集し、 終了後の内容を出力にコピーする。
- l
- 左側のバージョンを出力にコピーする。
- q
- 終了する。
- p
- 右側のバージョンを出力にコピーする。
- s
- 共通な行を表示せずにコピーする。
- v
- 共通な行を表示しながらコピーする。デフォルト。
返り値
sdiff は以下のどれかの値で終了する:
- 0
- sdiff は成功し、変更は存在しなかった。
- 1
- 変更が見付かった。
- 2
- 何らかのエラーが起こった。
関連項目
注意
プログラムのバグについては bug-gnu-utils@gnu.org に報告してください。
ページの更新は Ragnar Hojland Espinosa
<ragnar@ragnar-hojland.com> が行っています。