重複行を削除する方法
- 上のボックスにリストを1行に1項目ずつ貼り付けます。
- 重複を除いた行のボックスにすぐ結果が表示されます。各行は最初に出てきた順番で1回ずつ残ります。
- 必要に応じてオプションを調整し、結果をコピーするか.txtでダウンロードします(ファイル名は
unique-lines.txt)。
結果の上には処理内容の要約が表示されます。たとえば7行 → 重複なし5行 · 重複1件を削除 · 空行1行を削除のようになります。最初の数字は、空行も含めた入力全体の行数です。
オプションの説明
- 大文字と小文字を区別しない(初期設定はオフ)– 「Apple」「apple」「APPLE」を同じ行とみなします。残るのは最初に出てきた行の表記です。
- 行頭・行末の空白を無視(オン)– 行の先頭と末尾のスペースやタブを無視して比べ、結果からも取り除きます。行の途中のスペースは区別されるので、「New York」とスペース2つの「New York」は別の行です。
- 空行を削除(オン)– 空行と、スペースだけの行を結果から除きます。オフにすると空行もふつうの行として扱うため、最初の空行だけが残ります。
- A→Z順に並べ替え(オフ)– 重複を除いた行を並べ替えます。大文字・小文字やアクセントは区別せず、数字は「item 2」が「item 10」より前に来る自然な順序になります。日本語のページでは、かなが五十音順に並びます。ほかの並べ方が必要なら行の並べ替えを使ってください。
例
次の7行を入力するとします。3行目はappleの後ろにスペースが1つあり、4行目は空行です。
apple · Banana · apple␣ · (空行) · cherry · banana · Apple
- 初期設定では
apple、Banana、cherry、banana、Appleが残ります。末尾のスペースは無視されるので3行目は1行目の重複になり、空行は除かれます。 - 大文字と小文字を区別しないをオンにすると、
apple、Banana、cherryだけが残り、要約には重複3件を削除と表示されます。 - 行頭・行末の空白を無視をオフにすると、
apple␣が別の行として残ります。見た目が同じ2行がどちらも残ってしまう原因として、こうしたスペースがいちばん多いものです。
日本語のリストも同じように動作します。東京、大阪、東京、名古屋を1行ずつ入れると東京、大阪、名古屋が残ります。メールアドレスのリストでは、[email protected]、[email protected]、[email protected]、[email protected]、[email protected]が、大文字と小文字を区別しない設定で3件になります。@より後ろのドメイン部分はもともと大文字・小文字を区別せず、実際にはほぼすべてのメールサービスが@より前も区別しないので、まとめてしまってもたいてい問題ありません。
仕組み
このツールは行を上から順に読みながら、すでに出てきた行を(大文字・小文字と空白のオプションを適用した状態で)記録していきます。記録にある行は飛ばし、初めて出てきた行だけを結果に加えます。常に最初の行が残るので、並べ替えを使う方法と違って元の順序が保たれます。コマンドラインならawk '!seen[$0]++' list.txtが同じ処理をし、sort -uは重複を除くと同時に行の順序も変えます。表計算ソフトではUNIQUE関数や、Excelの重複の削除機能が同じ役割を果たします。
こんなときに
- 2つの顧客名簿やメール配信リストを統合するとき:一方のリストの下にもう一方を貼り付けて結果をコピーすれば、同じ人に二重に送らずに済みます。
- SEOや広告用のキーワード、ハッシュタグ、タグ、商品コードのリストを整理するとき
- ログファイルやエラーレポートを、種類の異なるメッセージだけに絞り込むとき
- 複数の資料から単語帳や名前のリストを作るとき
ヒントとよくある間違い
- 1行に1つの値が前提です。値がカンマで区切られている場合は、先に1行に1つずつに分けてください。逆に、結果をカンマ区切りの1行にしたいときは、改行の削除で「カンマ」を選びます。
- 目に見えない違いで行が別々に残ることがあります。スペースの代わりのタブ、ノーブレークスペース、曲がった引用符とまっすぐな引用符、全角と半角の文字(「A」と「A」、全角スペースと半角スペースなど)は、見た目が似ていても別の文字です。
- アクセントは無視されません。大文字と小文字を区別しない設定でも、「café」と「cafe」は別の行として残ります。同様に、ひらがなとカタカナ(「りんご」と「リンゴ」)も別の行です。
よくある質問
重複した行のうち、どれが残りますか?
最初に出てきた行です。後から出てきた同じ行は削除され、残った行は並べ替えをオンにしない限り元の順序のままです。
どの行が削除されたか確認できますか?
要約に表示されるのは削除した件数だけです。具体的にどの行かを見たいときは、元のリストと結果をテキスト比較に貼り付けてください。削除された行がすべて強調表示されます。
日本語、韓国語、中国語でも使えますか?
はい。どの言語でも文字単位で正確に比べます。大文字と小文字を区別しないオプションは、大文字のない文字には影響しません。
行数の上限はありますか?
決まった上限はありません。処理はすべてブラウザー内で行われるので、数十万行のリストでも一般的なパソコンならすぐに終わります。非常に大きなファイルだけは、端末のメモリによって制限されます。