アフィリエイト広告を利用しています

2024年02月06日

【Linux】改行コードの変換

linuxサーバーでシェルを実行すると、次のようなメッセージが出てくることがある。

<ファイル名>: line:○: $'\r': command not found

これはシェルのテキストにWindowsの「改行コード」が含まれているためである。
Windowsの改行コードを含めたつもりはなくとも、意識しないと自然体で入ってしまう。

改行コードは通常は見えないものであるが
Windowsの改行コードはCR+LF(\n+\r)、LinuxはLF(\n)のみである。
「CR」が余計であるために、エラーメッセージがでている。

「メモ帳」「ワードパッド」といったWindows付属のエディタで作成したのであれば、入ってしまう。
改行コードを制御するには「サクラエディタ」といった少し高度な(?)エディタを使用し、
ファイル保存時に改行コードをLFのみに指定することができる。

ここでは、Linuxサーバ上で改行コードから「CR」を取り除く方法を記述する。

なお、ファイルの改行コードは下記コマンドで確認できる。
file <ファイル名>
→ファイル情報を表示する子面戸であり、CRLFであれば「with CRLF line terminators」が表示される。

・sedコマンドを使用する。
余計な改行コード「\r」をブランクに置換する。
sed -i ‘s/\r//g’ <ファイル名>

・viを使用する。
viには改行コードの設定がカスタマイズできるため、viでファイルを開き改行コードを設定する。
:set ff=unix
※「:set ff」のみだと現在の改行コードが確認できる
※CRLFにするには「ff=dos」とする









posted by bronte at 11:33| Comment(0) | TrackBack(0) | Linux
カテゴリーアーカイブ
[PR]
最新記事
[PR]
プロフィール
「航空ファン」「航空情報」のブックナンバーを紹介していきます。今年亡くなった父の雑誌です。私はあまり乗り物やメカに興味がないのですが、手元にあるので載せていきます。私の独り言系も書いてみます。
bronteさんの画像
bronte
プロフィール