重複行の削除
リストを貼り付けて重複行を削除し、それぞれ最初に出現したものを残します。大文字小文字区別の切り替えと空行のクリーンアップも含まれます。
0行の重複を削除しました。
仕組み
このツールはテキストを改行で分割し、その後JavaScriptの Set を使って一度だけ各行を走査し、すでに見た内容を記録します。各行の最初の出現は元の位置に保持され、それ以降の重複は削除されます。1回の走査で定数時間のルックアップを行うため、数万行でも即座に重複削除でき、古典的なシェルのテクニック sort | uniq とは異なり、行の順序も保持されます。副作用としてアルファベット順に並べ替えられることもありません。
オプションによって「同じ行」とみなす基準が変わります。大文字小文字の区別をオフにすると、比較の前に各行が小文字に変換されます(保持される行は元の大文字小文字表記のまま表示されます)。「空白をトリム」は先頭と末尾のスペースやタブを最初に取り除きます。これは思っている以上に重要です。画面上ではピクセル単位で同じに見える2行でも、末尾のスペースやタブが原因で実際には異なることがあり、バイト単位の比較ではそれらは別の行として扱われます。重複が検出されない場合、ほとんどの場合は目に見えない空白が原因であり、トリムすることで解決します。空行の削除は重複削除の前に行われるため、単独の空行が「最初の空行」として残ることはありません。
処理はタブ内にすでにあるテキストに対して実行される、ほんの数行のJavaScriptです。何もアップロードされません。開発者ツールを開き、ネットワークタブに切り替えて、好きなだけ貼り付けたり編集したりしてみてください。リクエストは一切発生せず、ページの読み込みが完了すればこのツールはオフラインでも動作します。これは、メールアドレスやURL、あるいは見知らぬサーバーには送りたくない情報を含むリストを整理する際に重要なポイントです。