UltKit

重複行の削除

リストを貼り付けると、2回目以降に出てくる重複行がすべて削除され、残った行は元の順番のまま並びます。大文字・小文字の違いや余分なスペースを無視して照合することもでき、処理はすべてブラウザ内で行われます。

0 文字 · 0 語 · 0 行

0 文字 · 0 語 · 0 行

すべてこのブラウザのタブ内で処理されます。テキストがアップロードされたり保存されたりすることはありません。

このツールでできること

重複行の削除 各行の最初の出現だけを残し、後の重複を削除します。元の順序は変わりません。大文字と小文字や前後の空白を無視して比較でき、空行は残すことも削除することもできます。

変換前
red
blue
Red
green
変換後
red
blue
green

重複行の削除が必要になる場面

リストを統合すると、重複する行が必ず出てきます。たとえば、エクスポートしたメールアドレスの一覧を2つ合わせるマーケター、複数のツールからキーワードを集める調査担当者、ログファイルからURLを集める開発者、3つの申込フォームの名前を貼り付ける教師などです。いずれも、同じ項目が2回以上現れる状態になります。表計算ソフトでも重複を削除できますが、ファイルを開き、列を選択し、メニューを探す手間がかかります。データがすでにクリップボードにあるなら、テキストボックスに貼り付けるほうが手早く済みます。

元の順序を保つことは、思われている以上に重要です。手順のリスト、ランキング、クロールした順のURLなどは、並べ替えると意味が失われます。このツールでは、最初に出てきた行はそのままの位置に残り、後から現れた重複だけが削除されます。削除された行数がカウンターに表示されるので、結果が妥当かどうかも確認できます。

照合の仕組みと目に見えない違い

各行は比較用のキーに変換され、リストを上から順に読み込みながらセットに保存されます。キーがすでにセットにある行は重複と判断されます。処理は1回の走査で済むため、数十万行のリストでも高速に処理できます。従来のUnixコマンド uniq は隣り合う行の重複しか削除できず、通常は sort の後に実行するため元の順序が失われますが、このツールはそうではありません。awkの定番の書き方 awk '!seen[$0]++' と同じ処理を行います。

見た目が同じ2つの行でも、内容が異なる場合があります。末尾のスペース、スペースの代わりのタブ、Webページからコピーしたノーブレークスペースがあると、コンピューターは別の文字列として扱います。トリミングをオンにすると、ノーブレークスペースを含め、各行の両端の空白を無視します。大文字と小文字の区別をオフにすると、「Paris」と「paris」を同じ項目として扱い、最初に見つかった表記が残ります。空行は、段落の区切りを保つために残すことも、すべて削除することもできます。

重複を削除したあとに

重複を削除したリストは、次に並べ替えが必要になることがよくあります。行の並べ替えでは、五十音・アルファベット順、自然順、長さ順で並べ替えられます。リストがPDFや改行が崩れたメールから来たものなら、先にほかのテキストツールで整えてください。2行に分かれた項目は、途切れていない同じ項目とは一致しないためです。

よくある質問

重複行はどれが残りますか?
最初の行が残ります。同じ内容の後続の行はすべて削除され、残った行は元の順序のままなので、並び順が変わることはありません。
同じに見える2行が削除されないのはなぜですか?
目に見えない違いがあるためです。多いのは、末尾のスペース、タブ、ノーブレークスペースです。トリミングのオプションをオンにするか、大文字と小文字だけが違う場合は大文字小文字の区別をオフにしてください。
uniqコマンドとはどう違いますか?
uniq は直前の行と同じ場合にしか行を削除しないため、通常は sort と組み合わせて使います。このツールは、テキスト内のどこにある重複でも見つけ、元の順序を保ちます。
重複の削除と並べ替えを同時にできますか?
ここで重複を削除してから、結果を「行の並べ替え」に貼り付けてください。2段階に分けることで、最初に出てきた順序を残したいときはそのまま残し、並べ替えたいときだけ並べ替えられます。