diffが採りたかっただけなのに

ソースの修正履歴を記録するために、diffを採ろうとしたんだけど、Windows上のGUIツールじゃファイル毎にしか出力してくれない。(WinMarg/Rekisa/DF etc)

ディレクトリ配下全部となるとやっぱ本家のdiffコマンドだろうと思って、Windows上のソースをLinuxに転送してdiffしたら、文字化け。
よく見たら、環境がUTF8で、Windows上もUTF8で編集していたんだけど、diffコマンドはUTF8が変換できないらしい。
と、いうことは、まずEUCに変換して、それからdiffすれば良いってことね。

diff/配下に、旧ソースorg/ 新ソースnew/を置いて、
$ find -name '*.cpp' | xargs nkf --overwrite -eL
$ find -name '*.h' | xargs nkf --overwrite -eL
として、nkfで一括でEUC 改行コードLFに変換。(したつもりなんだけどなぁ)
あとは、
$ diff -U 3 -urwbB org new > diff.log
でも、何でか各行の末尾に^Mが着いてしまったので
viで開いて :1,$s/^M//で削除 ^Mはctrl+V ctrl+Mで表示される。