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を含めてしまい、キー検索の失敗を引き起こします。

変換手順

  1. テキストをホワイトスペースビジュアライザーに貼り付けます。
  2. 改行コードを確認 — CRLFは緑色の**←↵**マーカーとして表示されます。
  3. Line Endingsパネルが確認します:「CRLF (N)」または「Mixed: ...」。
  4. CleanセクションでCRLFをオンにします(単独のキャリッジリターンがある場合はオプションでCRも)。
  5. Cleanをクリック — すべてのCRLFシーケンスがLFに置換されます。
  6. 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パイプラインが正常に実行されます。

試してみる — Whitespace Visualizer

フルツールを開く