diff の使い方メモ
ファイルが同じか違うかだけが知りたい
diff -qs file1 file2
- -q: 違うかどうかだけ表示
- -s: 同じ場合もメッセージを表示
2つのファイルの違う箇所を詳細に知りたい
diff -y --left-column -W 180 -w -d -y
- -y: side-by-side 形式で表示
- --left-column: side-by-side 形式で共通な行を左側の列のみに表示
- -W 180: side-by-side 表示で横幅を 180 文字に指定 (80文字のターミナル2つ分+α)
- -d: できるだけ差分が少なくなるように比較
- -w: スペースを無視して比較
`--suppress-common-lines' をつけると同じ行を捨てて表示するようになります。
diff の戻り値
- 0: 変更なし
- 1: 変更あり
- 2: エラー
ファイルが変更されている場合にバックアップをとる
下記のようなシェルスクリプトを書くことになります。
diff backup.txt original.txt > /dev/null 2>&1 if [ $? -eq 1 ]; then cp -a original.txt backup.txt fi