改行コードの種類を検出・識別する(LF vs CRLF)
テキストがUnix(LF)、Windows(CRLF)、またはレガシーMac(CR)の改行コードを使用しているかを検出します。クロスプラットフォームの問題を引き起こす改行コードの混在を特定します。
Line Endings
詳細な説明
改行コードを理解する
異なるオペレーティングシステムは歴史的に、テキストファイルの行末を示すために異なる文字を使用してきました:
- LF(ラインフィード、\n、U+000A)— Unix、Linux、macOS(OS X以降)
- CRLF(キャリッジリターン+ラインフィード、\r\n、U+000D U+000A)— Windows
- CR(キャリッジリターン、\r、U+000D)— クラシックMac OS(OS X以前)
ビジュアライザーの表示方法
ホワイトスペースビジュアライザーは各タイプに固有のマーカーを使用します:
- LFは緑色の**↵**記号として表示
- CRは緑色の**←**記号として表示
- CRLFは緑色の**←↵**結合記号として表示
パネル下のLine Endingsセクションが要約を提供します:「LF (15)」「CRLF (15)」「Mixed: LF (10), CRLF (5)」など。
改行コードが重要な理由
| 問題 | 原因 |
|---|---|
| Gitがファイル全体の変更を表示 | 改行コードの混在または不正な.gitattributes設定 |
| Linuxでシェルスクリプトが失敗 | Windowsからのcrlf改行:/bin/bash\r: bad interpreter |
| CSVパースで余分な空白が発生 | UnixツールがCRLF付きCSVを読むと最終列に\rが付加 |
| Dockerビルドエラー | LinuxコンテナにコピーされたシェルスクリプトのWindows CRLF |
| CIパイプラインの失敗 | Windowsで編集されたスクリプトにCRLF、CIはLinuxで実行 |
改行コードの正規化
すべての改行コードをLF(Unix標準)に変換するには:
- テキストを貼り付けて統計で混在を確認します。
- CleanセクションでCRLFとCRのトグルを有効にします。
- Cleanをクリック — CRLFがLFに置換され、単独のCRが削除されます。
- 正規化されたテキストをコピーします。
異なる改行コードのテキストを比較する場合は、Diff Viewerで差分を確認できます。
ユースケース
DevOpsエンジニアのDockerビルドが、Windowsマシンからコピーされたシェルスクリプトにcrlf改行コードがあるため失敗します。スクリプトをホワイトスペースビジュアライザーに貼り付けると、CRLF/LFの混在が確認され、LFのみにクリーンアップするとDockerビルドが成功します。