重複行削除ツール:完全ガイド
無料、登録不要。テキストの重複行を即座に削除。exactマッチとfuzzyマッチ、大文字小文字の区別設定に対応したブラウザベースのツール。
Duplicate Line Removerとは
Duplicate Line Removerは、テキストブロックをスキャンして繰り返しの行を特定し、元の順序を維持したままユニークな行のみを返すブラウザベースのツールです。2つのマッチングモードを提供しています:exactマッチ(大文字小文字の区別の切り替えオプション付き)とfuzzyマッチ(Fuse.jsを通じて類似した行をグループ化)。統計パネルには元の行数、ユニーク行数、削除された行数が表示されるため、一目で結果を確認できます。エクスポートしたリストをクリーニングするデータアナリスト、設定エントリを重複排除するデベロッパー、誤って繰り返してしまった段落を削除するライターが、スクリプトを書かずにクリーンな出力が必要なときにこのツールを使用します。すべての処理はブラウザ内で実行されます。サーバーには何も送信されず、ページが一度読み込まれるとオフラインでも動作します。
主な機能
- 重複行の削除 — 繰り返しの行を取り除き、各行の最初の出現のみを返します。
- 大文字小文字を区別した比較 — デフォルトで有効。「Apple」と「apple」は異なる行として扱われます。
- 大文字小文字を区別しない比較 — Case Sensitiveオプションのチェックを外すと、「Apple」と「apple」は重複として扱われ、最初に登場したものだけが保持されます。
- Exactマッチモード — 行は大文字小文字の設定に従って同一でなければ重複とみなされません。
- Fuzzyマッチモード — Fuse.jsを使用して類似しているが同一でない行をグループ化します。閾値スライダー(0.1〜0.9)が「strict」「moderate」「loose」というラベルでグループ化の積極性を制御します。
- Fuzzyグループレビュー UI — fuzzyモードでは「Detect Fuzzy」をクリックすると、各重複グループがカードとして表示されます。保持したい行のバージョンをクリックし、重複排除された結果をコピーします。
- 削除統計 — 3つの統計カードがOriginal Lines(元の行数)、Unique Lines(ユニーク行数)、Removed(削除数)をリアルタイム(exactモード)または検出後(fuzzyモード)に表示します。
- バッチモード — プレミアム機能。1行ずつ送信された複数の独立したテキストブロックに重複排除を適用します。
- コピーとクリアボタン — ユニーク行の出力をワンクリックでクリップボードにコピーし、テキストエリアをリセットします。
- プリセットと履歴のサポート — プレミアム機能。大文字小文字の設定を保存し、過去のジョブを記録します。
Duplicate Line Removerの使い方
ステップ1:ツールを開く
Duplicate Line Removerにアクセスします。画面上部にオプションエリアが表示されます。「Case Sensitive」チェックボックス(デフォルトでオン)、3つの統計カード(Original Lines、Unique Lines、Removed)、Exact MatchとFuzzy Match間のモード切り替えがあります。
ステップ2:マッチングモードを選択する
完全一致の重複の場合: モードを「Exact Match」のままにします。大文字小文字が重要かどうかを決めます:
Errorとerrorを別々の行として保持する場合は「Case Sensitive」のチェックを入れたままにします。Errorとerrorを同じ行として扱いたい場合はチェックを外します。
類似重複の場合: 「Fuzzy Match」をクリックします。閾値スライダーが表示されます。低い値(0.1〜0.2、「strict」ラベル)は1文字の違いや軽いタイポのある行のみをグループ化します。高い値(0.7〜0.9、「loose」ラベル)は一般的な類似性のある行をグループ化します。デフォルト値は0.3(moderate)です。
ステップ3:テキストを貼り付ける
入力テキストエリアをクリックしてコンテンツを貼り付けます。exactマッチモードでは、右側の出力パネルと3つの統計カードがすぐに更新されます。ツールが重複を検出するにつれてRemovedカウントが増加するのを確認できます。
入力例(exactマッチ、大文字小文字区別あり):
apple
banana
Apple
apple
cherry
banana
出力:
apple
banana
Apple
cherry
統計カード:Original Lines: 6、Unique Lines: 4、Removed: 2
元の順序が保持されます。各行の最初の出現が保持されます。
ステップ4:Fuzzyグループを確認する(Fuzzyモードのみ)
fuzzyモードでは、テキストを貼り付けてから「Detect Fuzzy」をクリックします。ツールはFuse.jsを使用して閾値以下の文字列距離スコアの行をグループ化します。グループはアンバーボーダーのカードとして表示されます。各カードには類似した行がすべて表示されます。紫色でハイライトされた行は「keep」とマークされ、他の行は「drop」と表示されます。グループ内の任意の行をクリックして保持するバージョンを変更します。類似する一致がない行は、すでにユニークな行として別途表示されます。
選択に満足したら、「Copy Deduplicated Text」をクリックして結果をクリップボードにコピーします。
ステップ5:結果をコピーする(Exactモード)
exactマッチモードでは、「Copy Result」をクリックしてユニーク行の出力をクリップボードにコピーします。トースト通知が成功を確認します。サポーターの場合、コピー操作によりツール履歴にジョブが記録されます(「Removed N duplicates」という履歴ラベルで表示)。
実用的な例
メールリストのクリーニング
2つの異なるソースからメーリングリストをエクスポートして連結します。マージされたリストには何百もの重複が含まれています。ツールに完全なリストを貼り付け、「Case Sensitive」のチェックを外して(一部のアドレスは大文字小文字のみ異なる場合があるため)、出力パネルに即座に重複排除されたリストが表示されます。RemovedカウントのカードにはExactly何件のエントリが削除されたかが表示されます。
ログエントリの重複排除
同じエラーが毎秒複数回発生したため、ログファイルに行が繰り返されています。関連するログ行を貼り付け、Case Sensitiveを有効にしたまま(ログ行は大文字小文字を区別して正確です)、exactマッチに切り替えます。出力は各繰り返しエラーの最初の出現を保持し、調査すべき個別のエラーメッセージのコンパクトなリストを提供します。
類似したアンケート回答のクリーニング
回答者が類似したフリーテキスト回答を送信します:「Good」「good.」「Good!」「Great」「great」。fuzzyマッチに切り替え、閾値を0.3前後に設定して「Detect Fuzzy」をクリックします。ツールは「Good」「good.」「Good!」を類似としてグループ化し、どのバージョンを保持するかを選択できます。「Great」と「great」は別のグループになる場合があります。各クラスターを確認してクリーニングされた結果をコピーします。
ヒントとベストプラクティス
Exactモードは元の順序を保持します。 行は入力で最初に現れた順序で返されます。使用ケースで行の順序が重要な場合(ランク付きリスト、ステップのシーケンス)、並べ替えの副作用を心配することなく安全にexactモードを使用できます。
大文字小文字の区別がデフォルトでオンになっているのには理由があります。 ほとんどの技術データ(ファイルパス、設定キー、URL)は大文字小文字を区別します。デフォルト設定は、見かけ上似ているだけの行を誤ってマージするのを防ぎます。大文字小文字の違いが意味を持たないと確信できる場合のみオフにしてください。
strictなfuzzy閾値から始め、徐々に緩めます。 閾値0.1(strict)では、ほぼ同一の行のみがグループ化されます。閾値0.9(loose)では、関連性のない行がグループ化される場合があります。0.1または0.2から始め、グループを確認し、より幅広いグループ化が必要な場合にのみ閾値を増やします。
fuzzyモードでは保持するバージョンを選択します。 これがexactモードとの重要な違いです。fuzzyモードは類似重複の「最善の」バージョンを自動的に選択できません。クラスターを表示して決定させます。結果をコピーする前に各グループを読む時間を取ってください。
空白行は重要です。 空の行は独自の行です。入力に複数の空白行が含まれている場合、exactマッチモードでは1つの空白行に重複排除されます。すべての空白行を削除したい場合は、まずテキストクリーナーツールを使用してください。
一般的な問題とトラブルシューティング
Removedカウントがゼロのままです。 重複が検出されない場合は、大文字小文字の設定がデータに適しているか確認してください。「apple」と「Apple」が重複としてカウントされるべきなら、「Case Sensitive」のチェックを外してください。また、同一に見える行に末尾のスペースや異なる行末文字が含まれていないかも確認してください。ツールはexactモードで正確な文字シーケンスを比較します。
Fuzzyモードで期待した重複が検出されません。 閾値スライダーを下げてください。0.3の閾値は中程度です。より一般的な類似の行をキャプチャするために0.5以上を試してください。非常に短い行(1〜2文字)は、小さな変更がその長さの大きな割合を占めるため、fuzzyマッチが難しいことに注意してください。
テキストがあるのに出力が空です。 exactモードでは各行の少なくとも1つの出現が常に保持されるため、このような状況は発生しないはずです。空の出力エリアが表示された場合、入力テキストエリアに実際にテキストが含まれていること、そしてexactマッチモードになっていることを確認してください(fuzzyモードは右側の出力パネルを埋めず、代わりにグループカードを表示します)。
バッチモード:結果の行が1つしか表示されません。 バッチモードはバッチ入力の各行を重複排除する独立したテキストブロックとして扱います。バッチ入力が1行の場合、1行の結果が得られます。複数のブロックを処理するには、独立したブロックの間に改行を追加してください。
「Detect Fuzzy」ボタンがグレーアウトしています。 このボタンはfuzzyモードのみで利用可能で、空でない入力が必要です。モード切り替えを「Fuzzy Match」に切り替え、入力テキストエリアに少なくとも1つの空白でない行が含まれていることを確認してください。
プライバシーとセキュリティ
すべての重複排除処理はブラウザ内で完全に実行されます。exactモードでは、removeDuplicateLines関数はネットワーク活動なしに貼り付けたテキストを同期的に処理します。fuzzyモードでは、初めてfuzzy検出を実行したときにFuse.jsライブラリが動的インポートとして読み込まれます。これはライブラリコードの一回限りのダウンロードであり、テキストのダウンロードではありません。テキストはどこにも送信されません。ツールは最初のページ読み込み後(exactモード)、およびFuse.jsが一度ダウンロードされた後(fuzzyモード)にオフラインで動作します。
よくある質問
Duplicate Line Removerは無料ですか? はい。コアの重複排除機能(exactマッチ、大文字小文字の切り替え、統計、クリップボードへのコピー)はアカウント不要で完全に無料です。
オフラインで動作しますか? ページが読み込まれた後はexactモードで動作します。fuzzyモードはFuse.jsライブラリの一回限りのダウンロードが必要です。そのダウンロード後はオフラインでも動作します。
テキストは保存またはサーバーに送信されますか? いいえ。テキストはブラウザから出ることはありません。重複排除アルゴリズムはデバイス上のJavaScriptで実行されます。Fuse.jsの動的インポートはライブラリコードのみをダウンロードし、テキストはダウンロードしません。
「元の順序を保持する」とはどういう意味ですか? ツールは入力で最初に現れた順序で行を保持します。「banana」が行1、5、12に現れる場合、出力はそれを行1に相当する位置(他のユニーク行に対して)に保持します。出力をアルファベット順に並べ替えることはありません。
exactマッチとfuzzyマッチの違いは何ですか? exactマッチは大文字小文字の設定に従って文字ごとに同一の行を削除します。fuzzyマッチは文字列類似度スコアを使用して、類似しているが同一でない行(例:「colour」と「color」、「John Smith」と「Jon Smith」)をグループ化します。
fuzzy閾値はどのように機能しますか? 閾値はFuse.jsの感度を制御します。値0.0は完全一致が必要であることを意味し、値1.0は任意の2つの文字列がマッチすることを意味します。スライダーは0.1〜0.9の範囲です。0.1(「strict」)では、非常に軽微な違い(1文字の置換や転置)のみがグループ化につながります。0.7〜0.9(「loose」)では、一般的に類似した文字列がグループ化されます。デフォルトの0.3は軽微なタイポや書式の違いに対する妥当な出発点です。
重複の最初の出現ではなく最後の出現を保持できますか? exactモードではできません。ツールは常に最初の出現を保持し、後の出現を削除します。fuzzyモードではグループ内の任意の行をクリックして「keep」の選択としてマークできるため、実質的に任意の出現を保持することができます。
空白行はどうなりますか? 空白行はゼロ文字の独自の行として扱われます。連続する複数の空白行はexactモードでは1つの空白行に重複排除されます。すべての空白行を削除したい場合は、重複排除の前後にテキストクリーナーの使用を検討してください。
処理できる行数に制限はありますか? 制限はありません。非常に大きな入力(数千行)はexactモードで素早く処理されます。fuzzyモードは最悪の場合に二乗の複雑さを持ちます(各行が他のすべての行と比較されます)。そのため、非常に大きな入力(数万行)はデバイスによっては数秒かかる場合があります。
関連ツール
- Text Sorter — クリーンで整理されたリストを作成するために、重複排除の前後にアルファベット順、数値順、長さ順、または単語数順で行を並べ替えます。
- Word Counter — テキストをクリーニングした後に単語数、文数、段落数、読了時間をカウントします。
- Find and Replace — 重複排除を実行する前にバリエーションを正規化するためのターゲット指定のテキスト置換を行います。
今すぐDuplicate Line Removerを試す:Duplicate Line Remover