Tips記事
» 2002年06月12日 00時00分 UPDATE

trコマンドで行末の「^M」を取り除く

[木田佳克,ITmedia]

 「テキストファイルの行末改行コードを変えたい」Tipsで紹介をした方法以外にも、行末に見られる「^M」をtrコマンドで変換させることができる。

・^Mを取り除く

tr -d "\15" <fin >fout

・CRをLFに変換する

tr "\r" "\n" <fin >fout

 PerlスクリプトなどをバイナリモードのままWindowsからftpすると、改行コードが異なってしまいCGIが動作しないなどの原因の1つになる。バイナリモードはファイル内の属性も保持されたままftpが行われるからだ。

 DOSファイルの改行コードCR+LFをMacOS上で見ると、行頭に意味不明な文字(LFに相当)が入ってしまう。また、UNIX環境で見ると、行末に「^M」(CRに相当)が付加される。一方、UNIX上で作成されたテキストファイルをMacOSやWindows環境で覗くと改行コードとして認識されず、すべての行がつながって見えてしまう。

プラットフォーム 改行コード
Linux(UNIX) LF
MacOS CR
DOS(Windows) CR+LF

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ