改行コード変換
Windows、Mac、Linux 混在環境だと、改行コードを変換したくなるときがある。方法はいくつかあると思うけれども、とりあえず以下の方法がある(MAC OS X HACKS/O'REILLY より)。
- perl -pi -e 's/\r/\r\n/g' file_with_mac_linefeeds.txt(Mac -> Linux)
- perl -pi -e 's/\n/\r/g' file_with_unix_linefeeds.txt(Linux -> Mac)
- perl -pi -e 's/\r\n/\n/g' file_with_win_linefeeds.txt(Windows -> Linux)
- perl -pi -e 's/\r\n/\r/g' file_with_win_linefeeds.txt(Windows -> Mac)
まあ、こういうことだろう。
でも、エディタで改行コードを固定化して、そのエディタを使い続けるのが一番いい気がする。Emacs だと、ウィンドウ左下の「U:---」とかいう部分が文字コードと改行コードを意味するようだ。どうやら、
ということらしい。U 以外には EUC の E と JIS の J、Shift_JIS の S があるようだ。自分の環境ではとりあえず文字コードっぽいのは utf-8 を指定しているから、U なのは理解できるが。LF はどこで決まっているのだろうか。いろいろなサイトでは、Mac は CR が改行コードとあるが、CR が使われていたのは昔の話で、最近は LF ということだろうか。