ある時, 普段 Linux に触ったことの無い (でもコンピュータには詳しい) 人から, 本や WEB の情報の通りやってるつもりだけど動かないと 相談を受けました. 一見どこもおかしくないスクリプトかメイクファイルかだったと記憶してます. 話を聞くと Linux 上のエディタが嫌だったため samba で共有して Windows のエディタで作ってるようです. もしかしてと
# cat -v Makefile |
その人の場合, 「改行コードが \r\n になっているからだと思う」 と言うだけで自力で解決しましたが, せっかくなので変換する方法を書いておきます.
私が普段使うのは emacs に取り込む 方法です. mule なら M-x set-file-coding-system で *euc-japan*unix を, emacs (20.7) なら set-buffer-file-coding-system で euc-japan-unix を 選びます.
問題が起きた端末の前で, ペペッと解決してあげるため, お手軽にするのなら, Makefile 等日本語が入ってなければ
# tr -d "\r" < Makefile > hoge |
# perl -pe 's/\r$//g' Makefile > hoge |
ただし, これらは Windows (dos) ⇒ Linux 限定です. Mac は考慮してません. Windows, Linux, Mac はそれぞれ改行コードが異なります. 他の環境で作られたファイルを自分の環境の改行コード合わせるように 汎用性を持って作らせたかたら
# perl -pe 's/\x0D\x0A|\x0D|\x0A/\n/g' Makefile > hoge |