すぐ忘れる、環境によってコマンドがあったりなかったりなのでメモ
作業で使ったコマンドのメモ
参考
9 Best File Comparison and Difference (Diff) Tools for Linux
what you will learn
- 環境準備
- side-by-sideでdiff (human readable)
- 色付けしてさらに視覚的に見やすくする
- unified modeでdiff (not human readable)
- diff outputの見方
環境準備
- とりあえず
colordiff
だけインストール
sudo apt-get install colordiff
side-by-sideでdiff
- man見れば一瞬だが
-y
をつければOK - 人間が視覚的に見やすいoutput
diff -y ${file1 pacht}/file1 ${file2 pacht}/file2
- さらに、パイプでlessすると便利
diff -y ${file1 pacht}/file1 ${file2 pacht}/file2 | less
- さらに、
--width
で幅を指定できる(デフォルトは130)
diff -y --width=${columns} ${file1 pacht}/file1 ${file2 pacht}/file2
色付けしてさらに視覚的に見やすくする
- colordiffにパイプでつなげる
diff -y ${file1 pacht}/file1 ${file2 pacht}/file2 | colordiff
- 注意点として、file1が表示しきれていないと
colordiff
が効かない(デフォルトの130文字で足りない)。その場合は、--width
で割当て幅を広くしてあげる - これはcolordiffコマンド単体で使っても同じ
diff -y --width=${columns} ${file1 pacht}/file1 ${file2 pacht}/file2 | colordiff
unified modeでdiff
- 今度はプログラム的に処理しやすい形
-c
のcontext modeもあるけどよりシンプルで扱いやすいと思う
diff -u ${file1 pacht}/file1 ${file2 pacht}/file2
- 単語でgrep
diff -u ${file1 pacht}/file1 ${file2 pacht}/file2 | grep -E "${keyword}"
- unified modeのcharacterでgrep
#file2で追加された行を抽出(+) diff -u ${file1 pacht}/file1 ${file2 pacht}/file2 | grep -E "^\+" #file2では削除された行を抽出(-) diff -u ${file1 pacht}/file1 ${file2 pacht}/file2 | grep -E "^\-"
- 変更行についての解釈
- contect modeは変更行は
!
で表示される - unified modeは変更行は削除(
-
) -> 追加(+
)という形で表現されるみたい
- contect modeは変更行は
diff outの見方
- 結構雰囲気で見てるから、書いておく
diff -y ${file1 pacht}/file1 ${file2 pacht}/file2
の場合- diff output
<
< - denotes lines in file1.txt
>
> - denotes lines in file2.txt