diffでインデントや空白の数が微妙に違うソースコードを比較したいということがあったので、diffにオプションないかなと調べていたら以下のオプションがあった。
-E | タブとスペースの違いを無視する。タブはスペース8つに該当するらしい |
-b | スペースの数の違いを無視する。行頭に空白がない場合と空白がある場合の違いは無視しない |
-w | スペースの数の違いを無視する。行頭に空白がない場合と空白がある場合の違いも無視する |
-B | 空行を無視する |
-I | 正規表現を指定してそれにマッチする行を無視する |
ので、以下のようにするとコメントとか空白とか無視した比較になる。/*...*/系は無理だけど。
$ diff -w -B -I '^[[:space:]]*#' -I '^[[:space:]]*//' a.c b.c
まあ、結局GUIのdiffを使ったほうがわかりやすいということになってコマンドラインのdiffは使わなかったのだけども。