改行コード・空白変換の使い方|LF/CRLFの違いと整形の順序
公開日:2026年9月1日 運営:シルギア(Analyzegear, Inc.) 対象ツール:改行コード・空白変換
プログラムのソースコードや設定ファイル、CSV、コピペで集めたメモ。こうしたテキストは、見た目は同じでも「改行コード」や「空白」が環境ごとにバラバラになりがちです。このツールは、貼り付けたテキストの改行コードを検出して1種類へ統一し、あわせてタブとスペースの変換や無駄な空白の掃除をまとめて行います。ここでは、それぞれの機能が何をしていて、どういう順番で効くのかを、具体的な変換の前後例とともに説明します。
改行コードとは — LF・CRLF・CRの違い
改行コードは「行の区切り」を表す、目に見えない制御文字です。代表的なものが3種類あります。
- LF(\n): ラインフィード。Unix系・macOS・Web の標準。ソースコードやWebで最も無難な選択肢です。
- CRLF(\r\n): キャリッジリターン+ラインフィード。Windows のメモ帳や多くのWindowsアプリの標準です。
- CR(\r): 単独のキャリッジリターン。Mac OS 9 以前などで使われた古い形式で、今はほとんど見かけません。
このツールに文章を貼り付けると、入力欄の下に検出した改行コードが表示されます。1種類だけなら「LF」のように、複数混ざっていれば「混在(CRLF + LF)」のように示され、文字数と行数も一緒に確認できます。文字数は改行を除いたコードポイント数で数えるため、絵文字などのサロゲートペアも1文字として扱います。
なぜ改行コードの混在が問題になるのか
中身の文章がまったく同じでも、改行コードが違うとコンピュータにとっては別のバイト列です。そのため、実害はいくつもの形で表面化します。
- 差分(diff)が汚れる: Git などで、1文字も直していない行が「全部変更された」ように見え、レビューが困難になります。
- スクリプトが動かない: シェルスクリプトの行末に CR が残ると、コマンドが見えない文字ごと解釈されて「そんなコマンドは無い」と怒られることがあります。
- 表示が崩れる: 古いエディタで LF のファイルを開くと改行が無視され、全行がつながって表示される場合があります。
1つのファイルに LF と CRLF が混在していても、「改行コードの統一」で LF などを選べば、まとめて1種類に揃えられます。迷ったら、WebやソースコードはLF、Windows専用のバッチ等はCRLF、と覚えておくと安全です。
空白まわりの整形機能と使いどころ
改行の統一に加えて、コードやデータでよく必要になる空白の掃除もまとめて行えます。それぞれ役割が違います。
- インデント変換: タブ→スペースは行内のすべてのタブを、指定した幅(2・4・8)のスペースへ置き換えます。行頭スペース→タブは逆に、行頭の連続スペースを幅ごとに1つのタブへまとめます。プロジェクトの規約に合わせるときに使います。
- 行末の空白を削除: 各行の末尾に残った半角スペース・全角スペース・タブを取り除きます。意味のない空白差分を消せるので、コミット前の掃除に向いています。インデントは残るので、コードでも安全です。
- 各行の先頭・末尾をトリム: 末尾に加えて行頭の空白も削除します。インデントごと消えるので、箇条書きや文章の左揃えを整えたいときに。コードのインデントを保ちたい場合は使わないでください。
- 全角スペース→半角: 目に見えにくい全角スペース(U+3000)を半角へ置換します。行の途中の全角スペースが原因の不具合対策に有効です。
- 空行の扱い: 「まとめる」は連続した空行を1行に圧縮し、「削除」は空行をすべて取り除きます。どちらも空白だけの行を空行として扱います。
適用される順序 — 結果が予測できる理由
複数のオプションを同時に選んだとき、どれが先に効くかで結果は変わります。このツールは順序を固定しているため、同じ入力・同じ設定なら結果は常に同じになります。実際の流れはこうです。
- 元の改行コードを取り除いて行に分割する
- 全角スペース → 半角スペース
- インデント変換(タブ⇄スペース)
- 各行のトリム(先頭・末尾)
- 行末の空白を削除
- 空行の扱い(まとめる/削除)
- 選んだ改行コードで再結合
この順序には意味があります。たとえば全角スペースを先に半角へ直してからインデント変換を行うので、全角スペースが混じったインデントも正しく処理できます。トリムや行末削除を空行処理より前に行うため、「空白だけの行」も空行として正しく認識され、まとめる・削除の対象になります。
具体的な変換の前後例
実際に手を動かしたときの結果を、いくつか挙げます。
- タブ→スペース(幅4): 行頭にタブが2つ並んだ「[Tab][Tab]name」は、8個のスペース+nameになります。この行の文字数は8+4で12文字です。
- 行頭スペース→タブ(幅4): 行頭スペース6個の「 x」は、4個で1タブにまとまり、余った2個はそのまま残るため「[Tab] x」になります。端数のスペースは切り捨てず保持されます。
- 行末の空白削除: 「foo 」(末尾に半角スペース3個)は「foo」になります。
- 連続空行をまとめる: A・空・空・空・B の5行は、A・空・B の3行に圧縮されます。段落の区切りは1行残るので読みやすさは保てます。
- すべての空行を削除: A・空・B・空・C は、A・B・C の3行に詰まります。
統計の数え方も具体例で。CRLFで区切られた「ab/cd/ef」の3行は、改行を除いた文字数が6文字、行数は3行と表示されます。CRLFをLFに統一すると行末が1行あたり2バイトから1バイトへ減るため、100行のファイルなら約99バイト小さくなります。
ブラウザ内処理と、使うときの注意
このツールは、入力したテキストをサーバーへ送信しません。変換はすべてあなたの端末のブラウザ内で完結するため、ソースコードやログ、社外に出したくないメモでも安心して整形できます。オフラインでも動作し、ホーム画面に追加すればアプリのように使えます。
注意点もあります。行末の空白削除と各行トリムは目的が近いですが、インデントを保ちたいコードでは行末削除だけを選ぶのが安全です。トリムは行頭の空白も消すため、意図せずインデントが崩れることがあります。また「そのまま(変更しない)」でも、空行の削除やまとめで行数が変わった場合は、元テキストで最も多かった改行コードに統一される点に注意してください。仕上がりが想定と違うときは、チェックを一つずつ外して原因を切り分けると、狙った整形にたどり着けます。