ファイル末尾の改行を削除

巷で話題の非常に便利なyasnippet。すばらしい。
で、仕事用のmysnippetをいろいろ書いてから気づいたのですが、
これって、ファイル末尾の改行も展開時に挿入するんですね。
yasnippetを使っていて、展開後末尾の改行は個人的に必要なかったので、全部除去することに。

取りあえず、指定したディレクトリ以下のファイルの末尾の改行を一括削除。

$ find ./mysnippet-dir -type f -print0 | xargs -0 perl -pi -e 's/\n$// if eof'

あ。でも、svnのファイルとか混じってたら危険なので、

$ find ./mysnippet-dir -type f | grep -v '/\.svn/' | xargs perl -pi -e 's/\n$// if eof'

それかやっぱり、ディレクトリ下って一つづつ、

$ perl -pi -e 's/\n$// if eof' *

でもいいかも。

末尾が改行じゃないファイルが欲しいことなんて殆ど無かったけど、こんなところに需要が。

追記 (02:05)

$ find ./mysnippet-dir -type f ! -path '*/.svn/*' -print0 | xargs -0 perl -pi -e 's/\n$// if eof'

2つ目のよりはこっち?findの勉強になってきた。