Rubyで改行コードを変換するワンライナー

改行コードがCRLFなファイルがたくさんあったら、LFに変換したくなるのが人情だ。せっかくなのでRubyワンライナーで変換してみた。メモメモ。

まずはファイルが1個の場合。

# CRLF を LF に変換
% ruby -i -pe 'sub("\r\n", "\n")' test-crlf.txt

次にファイルがいっぱいある場合。crlf-files というディレクトリにCRLFなファイルがいっぱいあるとする。

# CRLF を LF に変換 ファイルいっぱい版
% ruby -i -pe 'sub("\r\n", "\n")' crlf-files/**/*(.)

最後なんか怪しいのが出てきたけど、これはzshのファイル指定方法。*(.) ってのでディレクトリとかは除いた通常のファイルだけ指定できる。今回の場合は「crlf-files ディレクトリ以下の通常ファイル全部」って意味になる。

というわけで、後半はzshのお話になりました。