最近暫く見かけなかったけど、稀に遭遇するのでメモ。
WindowsからテキストファイルをftpなどのバイナリモードでUNIX上に転送した場合、行末の改行コードが「^M(はっとM)」に変換されてしまう。
該当ファイルを探すには、以下のようにする。^Mは、「Ctrl-V Ctrl-M」で入力する。
$ grep '^M'
または、cat -e でも確認できる。odコマンドでも良い。
$ cat -e test.php
この改行コードを削除するには、次のような方法がある。
viエディタを使う場合、コマンドモードにて以下のようにする。
:%s/^M$//s
Perlを使う方場合。
$ perl -i.old -npe 's/\r\n/\n/' hoge.txt