CRLFからLF改行コードへの変換
WindowsのCRLF改行コードをUnixのLF形式に変換します。シェルスクリプト、Dockerファイル、クロスプラットフォーム開発に不可欠です。
Line Endings
詳細な説明
CRLFからLFへの変換
CRLF(\r\n)からLF(\n)への変換は、クロスプラットフォーム開発で最も一般的なテキスト正規化タスクの一つです。Windowsは伝統的にCRLFを使用しますが、事実上すべてのモダンな開発ツール、CI/CDシステム、デプロイ先はLFが標準のLinuxで動作します。
この変換が必要な場合
- シェルスクリプト:CRLF改行のbashスクリプトは、Linuxで
\r: command not foundエラーを出します。キャリッジリターン(\r)がコマンドの一部になります。 - Docker:Linuxコンテナにcopyされたファイルは元の改行コードを保持します。エントリポイントスクリプトのCRLFはコンテナ起動失敗を引き起こします。
- Gitフック:フックスクリプトはすべてのプラットフォームで一貫した動作のためにLFを使用する必要があります。
- Makefile:Makeはシェルより寛容ですが、レシピ行のCRLFは微妙な問題を引き起こす可能性があります。
- .envファイル:一部のパーサーは値に\rを含めてしまい、キー検索の失敗を引き起こします。
変換手順
- テキストをホワイトスペースビジュアライザーに貼り付けます。
- 改行コードを確認 — CRLFは緑色の**←↵**マーカーとして表示されます。
- Line Endingsパネルが確認します:「CRLF (N)」または「Mixed: ...」。
- CleanセクションでCRLFをオンにします(単独のキャリッジリターンがある場合はオプションでCRも)。
- Cleanをクリック — すべてのCRLFシーケンスがLFに置換されます。
- Copy CleanedをクリックしてLF正規化されたテキストを取得します。
検証
クリーニング後、Line Endingsパネルは「LF (N)」のみを表示し、CRLFやCRのカウントはないはずです。統計パネルでCRとCRLFの両方が0であることを確認します。
変換の自動化
プロジェクト全体の変換には以下を検討:
.gitattributes:* text=auto eol=lf.editorconfig:end_of_line = lf- Prettier: 設定で
"endOfLine": "lf"
これらのツールにより、CRLFがそもそもコミットされるのを防止できます。
ユースケース
Windows上の開発者がデプロイスクリプトを作成しますが、ローカルでは動作するもののLinux CIサーバーでは「command not found」エラーで失敗します。ホワイトスペースビジュアライザーで全行にCRLFマーカーを確認し、LFに変換するとCIパイプラインが正常に実行されます。