Unixの上でsed, awk, Python, Perl などを使ってファイルを行ごとに扱うためには、各行は LF という文字コード(\n)で区切られていないといけない。しかし、他のシステムで作られたファイルは異なる改行コードを用いているため、一旦unix用の改行コードに変換する必要がある。
例えば、foo.txtというファイルを調べたければ、Terminalを開いて次のようにする。
$ od -c foo.txt | less
表示される文字の中に混じっている\n や\r\nを見つけ、下の表と比べる。
| システム | 改行コード | od -c での見え方 |
|---|---|---|
| unix | LF | \n |
| Mac (特にOS 9以前) | CR | \r |
| Windows | CR+LF | \r\n |
Mac OS Xの「テキストエディット」などは、unixと同じく、\n の改行コードで書き出す。
Unixのコマンドを使うと、簡単に改行コードを変換でる。
$ tr \\r \\n <mac.txt >unix.txt
$ tr -d \\r <windows.txt >unix.txt
$ perl -p -e 's/\n/\r\n/' <unix.txt >windows.txt