diff
テキスト処理
書き方
diff -u [old] [new]二つのファイルのどこが変わったかを示します。patch やコードレビューが期待する形は -u で、違いがあると終了コードが 1 になるため set -e のスクリプトはここで止まります。
よく使うオプション
| オプション | 意味 |
|---|---|
| -u | Unified output, the format patch and code review expect |
| -r | Compare two directory trees |
| -q | Only say whether the files differ |
| -w | Ignore all whitespace |
| -i | Ignore case |
| -N | Treat a missing file as empty, which patches need |
例
diff -u old.conf new.conf > fix.patchWrites a patch file.
diff -rq dirA dirBLists which files differ between two trees.
diff <(sort a.txt) <(sort b.txt)Compares two files ignoring line order (bash).
パイプでつないで使うのが本来の形です。ひとつで全部やるより、三つつないだ方が短くなります。
読み方
- 角括弧 [ ] は省いてよい部分です。
- 三点 … は複数並べられるという意味です。
- オプションは大文字小文字を区別します — -r と -R が別物のコマンドもあります。
よくある質問
Q. diff は何をしますか。
二つのファイルのどこが変わったかを示します。patch やコードレビューが期待する形は -u で、違いがあると終了コードが 1 になるため set -e のスクリプトはここで止まります。
Q. どう打ちますか。
diff -u [old] [new] — 角括弧は省いてよい部分です。
Q. よく使うオプションはいくつですか。
ここにまとめたのは6個です。全部は man diff にあります。このコマンドはテキスト処理の仲間です。
関連するコマンド
man ページ: man diff