テキストから重複行を削除
テキストから重複行をオンラインで削除 — 無料・即時・100% ブラウザ完結。大文字小文字や空白を無視、最初または最後の出現を保持し、削除した重複数を表示。ソートや整理も可能。登録不要。
重複行を削除するとは?
重複行を削除する — 重複削除、または「dedupe」 — とは、改行区切りのテキストの塊を走査し、各異なる行のコピーを 1 つだけ保持することを意味します。データを扱う人が誰でも遭遇する、最も一般的なクリーンアップ作業の 1 つです: 繰り返しがたまったメーリングリストを圧縮する、ログを一意なメッセージに減らす、スプレッドシート列の異なる値を見つける、複数のリストを 1 つのクリーンな集合に統合する、など。
面白い問いは、何を重複とみなすかです。バイト単位の比較が厳密な答えですが、実データはもっと乱雑です。2 行は同一に見えても末尾の空白 1 つで異なったり、大文字小文字だけが違ったり — `Error` と `error` — します。本ツールはあなたに決めさせます: デフォルトでケースを無視し、空白を無視する比較も有効にできるので、行はトリムして小文字化した形で照合されます。そうすれば正確なエンコーディングではなく行の意味で重複削除でき、これはほぼ常にあなたが本当に望むものです。
もう 1 つの決定はどのコピーを残すかです。最初の出現を残すと元の順序が保たれ、これがデフォルトです。最後を残すのは後のエントリが以前のものに優先するときに便利です。いずれにせよ結果は決定論的で、ライブ統計バッジが削除された重複数を正確に教えてくれるので、ツールを盲目的に信頼する必要はありません。
重複削除はソートやその他の整理と自然に組み合わさります。本ツールはそれらを 1 つのパネルに折り込みます: 重複を削除し、次に任意でソート、空白のトリム、空行の削除、逆順、行番号の追加。ソートが主役のときは、同じエンジンを共有する姉妹ツールのテキスト行のソートを使ってください。テキストの行数と単語数を数えるには文字数カウンターを、リストの 2 つのバージョンの間で何が変わったかを見るにはテキスト差分を、重複削除の前にケースを正規化するにはケース変換ツールを使ってください。
すべてがアップロードなしにブラウザ内で完全に行われるため、機密リストの重複削除はローカルで編集するのとまったく同じくらいプライベートです。貼り付ければ、一意な結果が 1 秒でコピー可能になります。
Input: alice@example.com bob@example.com alice@example.com ALICE@example.com Exact dedupe (case-sensitive): alice@example.com bob@example.com ALICE@example.com Case-insensitive dedupe (default): alice@example.com bob@example.com ← ALICE collapsed into alice
主な特長
順序を保つ重複削除
デフォルトで各一意な行を元の順序で一度だけ保持します — `awk '!seen[$0]++'` と同じ挙動を端末なしで。リストは貼り付けた並びのまま、ただし繰り返しがなくなります。
最初または最後の出現を保持
各行の最初と最後、どちらの出現が生き残るかを選びます。最初の保持は一般的な整理で順序を保ち、最後の保持は後のエントリが以前のものを上書きする設定値や環境値に最適です。
大文字小文字を区別しないマッチング
デフォルトで `Error`、`error`、`ERROR` は 1 行に統合されます — 大半のリストにとって自然な選択です。ケースが意味を持ち重複が厳密に一致すべきときは「大文字小文字を区別」をオンにします。
空白を区別しないマッチング
「先頭 / 末尾の空白を無視」は、末尾の空白やタブだけが異なる不可視の重複を捕捉します — スプレッドシートや PDF から貼り付けたデータで「同一」の行が重複削除されない一番の理由です。
ライブ重複カウント
統計バッジが入力と同時に `12 行 → 9 行 · 重複 3 件を削除` を表示します。統合された繰り返しの数が常に正確に分かります — ツールが実際に何かをしたかを推測する必要はありません。
重複削除 + ソートを 1 パスで
ソート順序を有効にして、一意でアルファベット順(または自然順、長さ順)のリストを 1 ステップで得られます。重複削除が先に実行され、次にソートされるため、何も失われず、出力はクリーンかつ順序付きです。
整理トグル
同じパネルで空白のトリム、空行の削除、順序の反転、結果への番号付けも行えます。重複削除の上にどれでも重ねれば、混沌と貼り付けたリストが 1 か所でクリーンで一意な貼り付け可能な出力になります — スクリプト不要です。
100% ブラウザベースのプライバシー
テキストはページから出ません — アップロードもログ記録も分析もありません。メールリスト、アクセスログ、機密データに安全です。Network タブで自分で確認できます: 重複削除はリクエストをゼロ発生させます。
重複行の削除の例
厳密な重複を削除
apple banana apple cherry banana
apple banana cherry
デフォルトの挙動: 各行は最初の出現で一度だけ保持され、後の厳密な繰り返しは破棄されます。元の順序は保たれます。統計バッジは `5 行 → 3 行 · 重複 2 件を削除` と報告します。
大文字小文字を無視
Error error ERROR Warning
Error Warning
「大文字小文字を区別」をオフ(デフォルト)にすると、`Error`、`error`、`ERROR` は同じ行として扱われ、最初のものだけが保持されます。「大文字小文字を区別」をオンにすると 3 つすべてを別々のエントリとして保ちます。
先頭 / 末尾の空白を無視
apple apple banana banana
apple banana
「先頭 / 末尾の空白を無視」を有効にして、`apple` と ` apple ` を等しく比較します。これはスプレッドシート、PDF、端末からコピーしたデータを悩ませる、末尾の空白が紛れ込む不可視の重複を捕捉します。
最後の出現を保持
v1 v2 v1 v3
v2 v1 v3
「残す出現」を最後に切り替えると、各行の最後の出現がその最後の位置で生き残ります。ここでは 2 つ目の `v1` が保持され、最初のものが削除されます。後のエントリが以前のものを上書きするとき — 環境変数や設定のオーバーライドなど — に便利です。
重複削除とソートを同時に
dog cat dog bird cat
bird cat dog
昇順ソートをオンにすると、クリーンで一意なアルファベット順のリストを 1 ステップで得られます。重複削除が先に実行され、次にソートされるため、出力は一意かつ順序付きです — 乱雑に貼り付けた列を整った集合に変えるのに最適です。
空行と重複を削除
alpha beta alpha gamma
alpha beta gamma
重複削除と並べて「空行を削除」を有効にすると、空行と繰り返しを一度に落とせます。統計バッジは両者を分けます: `6 行 → 3 行 · 重複 1 件を削除 · 空行 2 件を削除`。
重複がいくつあるか数える
a b a a c b
a b c
数だけ知りたい場合でも、重複削除が答えをくれます: 統計バッジが `6 行 → 3 行 · 重複 3 件を削除` を表示します。手動で集計せずに、リストにどれだけの繰り返しが潜んでいるかを知る素早い方法です。
2 つのリストを一意なエントリに統合
red green blue green yellow red
red green blue yellow
2 つのリストを続けて貼り付けて重複削除すると和集合が得られます — すべての異なる行、繰り返しなし、初出順を保持。スプレッドシートの数式なしでメーリングリスト、タグ集合、ID リストを結合する最速の方法です。
重複行の削除方法
- 1
行を貼り付けるか入力
テキストを入力ボックスに入れます。各改行が別々の行です。重複は入力と同時に即座に削除されます — 送信ボタンはありません。末尾の改行は無視されるので余分な空行として数えられません。
- 2
何を重複とみなすか選ぶ
「大文字小文字を区別」をオフのままにして `Foo` と `foo` を同じとして扱うか、オンにして別々に保ちます。「先頭 / 末尾の空白を無視」を有効にして、余分な空白だけが異なる行を捕捉します。
- 3
どの出現を残すか選ぶ
「残す出現」はデフォルトで最初で、元の順序を保ちます。各行の最後の出現が勝つべきときは最後に切り替えます — 後のエントリが以前のものに優先するオーバーライドに便利です。
- 4
必要ならソートや整理を追加
ソート順序を有効にして一意な結果をアルファベット順にするか、「空行を削除」と「各行をトリム」をオンにして同じ処理でリストを整えます。統計バッジが各トグルの効果を表示します。
- 5
一意な結果をコピー
「コピー」をクリックして重複削除の出力をクリップボードに入れます。「リセット」で両方のボックスをクリア、「サンプル」で例のリストを読み込めます。処理のどの時点でもアップロードはありません。
重複削除でよくある誤り
空白が重複を隠す
同一に見えても末尾の空白やタブで異なる行は厳密な重複ではないため生き残ります。「先頭 / 末尾の空白を無視」を有効にしてトリムした形で比較します。これは、特にスプレッドシートや PDF のデータで、単一で最も一般的な重複削除の意外です。
厳密一致("apple " ≠ "apple"): apple apple ← 末尾の空白があり一意として保持 banana
空白を無視: apple banana
ケースの違いを一意として扱う
「大文字小文字を区別」がオンのとき、`Error` と `error` は別の行で両方とも生き残ります。同じものにしたかったなら「大文字小文字を区別」をオフ(デフォルト)にします。逆に、ケースが重要なときにオフにすると、分けておきたかった行を統合してしまうことがあります。
大文字小文字の区別あり: Error error ERROR ← 3 つとも保持
大文字小文字を区別しない(デフォルト): Error ← 残りは統合
非隣接の重複が残ると期待する
コマンドラインの `uniq` と違い、本ツールは隣接だけでなくリストのどこにある重複も削除します — そのため事前にソートする必要はありません。連続する繰り返しだけを統合したかった場合、本ツールは合いません。代わりにデータをソートするか再構成してください。
uniq の挙動を想定(隣接のみ): a b a ← 残ると思ったが削除される
完全な重複削除(本ツール): a b ← 後方の 'a' はどこに現れても削除される
空行の削除と重複削除を混同する
重複削除は繰り返しの空行を統合しますが 1 つは残します。すべての空白を削除するわけではありません。すべての空行を落とすには「空行を削除」を有効にします。統計バッジは 2 つのカウントを別々に報告するので、空行と真の重複のどちらが削除されたか分かります。
重複削除のみ(空行を 1 つ保持): alpha (空行) beta
重複削除 + 空行を削除: alpha beta
重複行の削除: ユースケース
- メールと連絡先リストを整理
- 繰り返しがたまったエクスポート済みのメーリングリストを貼り付け、一意な集合を受け取ります。ケースと空白を無視するマッチングを有効にして、`Bob@x.com`、`bob@x.com`、`bob@x.com ` がすべて 1 つのアドレスに統合されるようにします。
- ログを一意なメッセージに減らす
- ノイズの多いログを重複削除して、繰り返しなしで異なるエラーやイベントの行を見ます。各メッセージの最新の出現が最初より重要なときは最後の保持が便利です。
- 列の一意な値を見つける
- CSV やスプレッドシートから 1 列をコピーして重複削除すると、出力は異なる値の集合になります — いくつの重複があったかのカウント付きで、これは素早い濃度チェックにもなります。スプレッドシートの数式なしで、貼り付けた列から重複行を見つけて剥がすこともできます。
- 繰り返しなしでリストを統合
- 2 つ以上のリストを続けて貼り付けて重複削除し、その和集合を得ます: すべての異なる行、繰り返しなし、初出順で。タグ、ID、名前の一度きりの統合にはスプレッドシートの数式より速いです。
- セキュリティ用ワードリストを重複削除
- パスワードのワードリスト、サブドメインのリスト、ファジング辞書を完全にオフラインで結合・整理します。すべての操作がローカルなので、機微なセキュリティデータはあなたのマシンに留まり、外部サービスに送信されることはありません。
- import や依存関係のリストを整える
- コピー&ペースト中に紛れ込んだ重複した import 文、パッケージ名、依存エントリを削除します。ソート順序を追加して、今後の diff を小さく保つ正準的で一意なリストを作ります。
- 分析のためのデータ準備
- カウント、チャート化、データの読み込みの前に繰り返しを剥がして、重複が結果を歪めないようにします。整理したリストを測るには文字数カウンターと、別バージョンと比較するにはテキスト差分と組み合わせます。
- SEO のためのキーワードリストを重複削除
- キーワード調査のエクスポートは類似重複だらけです。ここで厳密な繰り返しを削除し、任意で小文字化・トリムして、グループ化やページへのマッピングの前にクリーンな一意キーワード集合を得ます。
重複削除の仕組み
- ハッシュセットによる重複削除
- 行はハッシュセット(JavaScript の `Set` または `Map`)で、各行の比較形をキーにして重複削除され、大きなリストでも線形時間の性能を与えます。各行のキーは一度だけ計算され、定数時間で参照されます。
- 比較キーの正規化
- マッチングに使うキーは行から導出されます: 「先頭 / 末尾の空白を無視」がオンならまずトリムし、「大文字小文字を区別」がオフなら次に小文字化します。出力に現れるのは正規化キーではなく元の行なので、生き残る行のケースと空白は保持されます。
- 最初の保持 対 最後の保持
- 最初の保持は、あるキーが初めて見られたときに行を結果へ押し出し、後の繰り返しをスキップします。最後の保持は各キーの最終インデックスを計算してそのインデックスの行だけを保持するため、生き残るコピーは最後の位置に収まりつつ全体の順序は依然として入力に従います。
- 行分割(CRLF / LF / CR)
- 行はあらゆる改行規約 — `\r\n`(Windows)、`\n`(Unix)、`\r`(クラシック Mac) — で分割されるため、混在した入力や貼り付けた入力もそのまま動作します。処理前に末尾の改行を 1 つ落とすので、改行で終わるファイルが末尾に幻の空の重複を登録しません。
- 決定論的なパイプライン順序
- パイプラインは定まった順序で実行されます — 空白のトリム、次に空行の削除、次に重複削除、次に任意のソートまたはシャッフル、次に逆順、次に行番号付け。重複は任意のソートステップの前に統合されるため、ソート順序をオンにしても一意な集合を並べ替えるだけで、異なる行を落とすことはありません。
- 重複と空行を別々にカウント
- 統計バッジは削除された重複と削除された空行を独立に追跡し、各段階の前後の行数差として計算します。これにより、1 つの合算値ではなく `重複 1 件を削除 · 空行 2 件を削除` のように確認できます。
- ブラウザ内、worker 不要
- すべての重複削除はサーバー往復なしにブラウザのメインスレッドで動作します。典型的なリストは瞬時に完了し、アルゴリズムが線形かつセットベースなので、性能はページをフリーズさせずに非常に大きな入力へ優雅にスケールします。
重複削除のベストプラクティス
- 空白をトリムして隠れた重複を捕捉
- 重複が生き残る最も一般的な理由は不可視の末尾空白です。スプレッドシート、PDF、端末から貼り付けたデータを重複削除するときは「先頭 / 末尾の空白を無視」を有効にして、行をトリムした形で比較します。削除された重複の数が予想より少ない場合、たいてい空白が原因です。
- 大文字小文字の区別を意図的に決める
- メール、タグ、人が読むリストには「大文字小文字を区別」をオフにして `Foo` と `foo` を統合します。`A1B2` と `a1b2` が本当に異なる値である識別子やハッシュのような、ケースが重要なデータにだけオンにします。誤った選択はどの行が生き残るかを静かに変えます。
- 上書きの意味論には最後の保持を使う
- 後のエントリが勝つべきとき — 設定のオーバーライド、環境変数、最新のステータスが重要なログ — は「残す出現」を最後に切り替えます。先頭から順序を保つべき一般的なリスト整理には、デフォルトの最初を保ちます。
- カウントや分析の前に重複削除
- 繰り返しはカウント、チャート、集計を歪めます。先に重複を削除してから測定します。統計バッジは素早い濃度チェックにもなります: 入力行数と出力行数の差が、データがどれだけの繰り返しを抱えていたかを教えます。
- 正準的なリストには重複削除後にソート
- 設定ファイル、マニフェスト、diff のために安定した比較可能なリストが必要なら、重複削除と並べてソート順序を有効にします。一意でソートされたリストは最小の diff を生み、テキスト差分で別バージョンと比較しやすくなります。
- コピー前にライブカウントで検証
- コピーする前に統計バッジをちらりと見ます。`12 行 → 9 行 · 重複 3 件を削除` はツールが意図通りに動作したことを確認します。数字がおかしければ — 繰り返しを期待したのにゼロ削除 — ケースと空白の設定を見直します。
よくある質問
このツールは何をするものですか?
重複の最初と最後、どちらの出現を保持しますか?
入力したテキストはどこかにアップロードされますか?
大文字小文字を無視して重複を削除するには?
見た目が同じ行がなぜ重複削除されないのですか?
重複の削除は行の順序を変えますか?
重複の削除とソートを同時にできますか?
空行はどうなりますか?
リストのサイズに上限はありますか?
これはコマンドライン(sort -u、awk、uniq)とどう比較されますか?
Excel や Notepad++ で重複行を削除するよりなぜ速いのですか?
これで列の一意な値を見つけられますか?
関連ツール
すべてのツールを見る →ケース変換ツール — UPPERCASE、lowercase、camelCase ほか
テキスト処理
テキストを UPPERCASE、lowercase、Title Case、Sentence case、camelCase、PascalCase、snake_case、kebab-case、CONSTANT_CASE など 15 形式へ即座に変換。無料・ブラウザ完結・登録不要。
Lorem Ipsum ジェネレーター — 無料プレースホルダー生成
テキスト処理
Lorem Ipsum のプレースホルダーテキストを即座に生成 — 段落・文・単語・バイト・リスト単位で。プレーンテキスト、HTML、Markdown、JSON でコピーまたはダウンロード。100% 無料、プライバシー重視、ブラウザ内処理。登録不要。
無料の Regex テスター — パターンをオンラインでデバッグ & マッチ
テキスト処理
任意のテキストに対して regex パターンを即座にテストできます。リアルタイムのマッチハイライト、キャプチャグループ、置換プレビュー、分割、パターン解説に対応。JavaScript 系の正規表現を 100% プライベートに、登録不要で利用できます。
URL スラッグ生成ツール — テキストをスラッグ化
テキスト処理
任意のタイトルやテキストを、SEO に強いクリーンな URL スラッグへ即座にスラッグ化。アクセント記号やキリル文字を ASCII に翻字、または Unicode 文字をそのまま維持。Convert ボタン不要、100% プライベートでブラウザ完結、登録不要。
テキスト行をアルファベット順・自然順にソート
テキスト処理
テキストの行をアルファベット順・数値対応の自然順・長さ順で、昇順または降順にソート。無料のオンライン行ソートツールで 100% ブラウザ完結。重複削除・逆順・リスト整理も可能。登録不要、アップロードなし。
テキスト比較と差分検出
テキスト処理
2 つのテキストをブラウザ内で即座に比較。並列ビュー、行内の単語レベルハイライト、統一 diff のエクスポート、大文字小文字・空白・空行の無視に対応。完全ブラウザ内処理でアップロード不要、テキストは端末から出ません。