ラインエンディングとは

ラインエンディング(改行またはラインエンディングシーケンスとも呼ばれます)は、1行のテキストが終わり次の行が始まる場所を示す特殊文字または文字のペアです。オペレーティングシステム全体で3つの異なる規約が存在します:LF\n、単一のラインフィード文字)、CRLF\r\n、キャリッジリターンの後にラインフィード)、およびCR\r、スタンドアロンのキャリッジリターン)。

この違いは初期のコンピュータハードウェアに由来します。タイプライターは新しい行を開始するために2つの物理的なステップが必要でした — キャリッジを開始位置に戻す(CR)と用紙を1行進める(LF)。Unixシステムは1970年代にLFのみを採用しましたが、MS-DOSおよび後のWindowsは完全なCR+LFシーケンスを保持しました。クラシックMac OS(OS X以前)はCRのみを使用していましたが、最新のmacOSはUnixのLF規約に従っています。

混合ラインエンディングは、複数のプラットフォームで編集されたファイル、システム間で転送されたファイル、または異なるソースから連結されたファイルで一般的です。スクリプト、ビルドツール、バージョン管理システムで微妙なバグを引き起こす可能性があります。

ツール説明

このツールはテキストまたはファイルを分析し、どのラインエンディングタイプが存在するかを検出します。各タイプを個別にカウントします — CRLF、LF、CR — そして全体的なラインエンディングスタイル(ファイルに混合エンディングがあるかどうかを含む)を報告します。また、基本的なライン統計も提供します:総ライン数、最長行、最短行、および平均行長。

機能

  • 3つのラインエンディングタイプをすべて検出:CRLF(Windows)、LF(Unix/macOS)、CR(クラシックMac)
  • 混合ラインエンディングを識別し、優位なスタイルをラベル付けします
  • コードエディタを介して貼り付けたテキストと任意のテキスト形式のアップロードされたファイルの両方を受け入れます
  • 各ラインエンディングタイプを独立してカウント、二重カウントなし
  • 総ライン数、最長行、最短行、および平均行長を報告します

ユースケース

  • クロスプラットフォームビルド障害のデバッグ — 予期しないCRLFエンディングを持つスクリプトまたは設定ファイルはしばしばUnixサーバーで破損します。デプロイ前にラインエンディングを確認するためにこのツールを使用してください
  • コードレビュー準備 — Windowsマシンから提供されたファイルがプロジェクトの予想されるLF規約を使用していることを確認してからコミットしてください
  • テキストファイル監査 — ログファイル、CSV、またはデータエクスポートをすばやく検査して、プログラムで解析する前にその構造を理解してください

仕組み

CRLFシーケンス(\r\n)は最初に正規表現マッチを使用して検出およびカウントされます。マッチされたペアは文字列から削除され、その後スタンドアロンのLF(\n)とCR(\r)文字が個別にカウントされます。これにより、単一の\r\nがCRとLFの両方としてカウントされるのを防ぎます。ライン統計は、元のテキストを3つのラインエンディングパターンすべてで分割することで導出されます。