メールのリストやログを受け取ると、空行が混ざり、同じ項目が何度も並び、行末に見えない空白が付いている。Excel に入れて重複削除を回したり短いスクリプトを書いたりするのは面倒です。行単位の整理は、貼り付けてオプションをいくつか入れるだけで終わります。
空行と重複を一度に整える
行整理の基本は4つの操作です。空行の削除、前後の空白の除去、重複の削除、並べ替え。別々に使うより、まとめて有効にすると強力です。
たとえば hello 、空行、world、hello、空白だけの行が混ざったテキストがあるとします。PiPi Worlds の 行整理ツールで前後の空白を除去、空行を削除、重複を削除、昇順で並べ替えを有効にすると、結果は hello、world の2行に減ります。残りの行数がリアルタイムで表示され、元が何行から何行に整ったかがすぐ分かります。
全体の重複と連続の重複は別物
重複削除には2種類あり、結果がかなり違います。
apple、apple、banana、apple の4行を見ます。
| 方式 | 結果 |
|---|---|
| 全体の重複削除 | apple, banana(2行) |
| 連続の重複削除 | apple, banana, apple(3行) |
全体削除はどこにあっても同じ行なら最初の1つだけ残します。連続削除は直前の行と同じときだけ消すので、最後の apple は上が banana のため生き残ります。並びを変えずに連続の繰り返しだけ畳みたいときに連続削除を使います。
適用順序が結果を左右する
見落としがちな点です。操作が適用される順序が決まっています。
有効にした操作について、前後の空白の除去、空行の削除、重複の削除、並べ替え、行番号の順です。初期設定では空行の削除だけがオンです。apple と apple (末尾に空白)は別の行なので、まとめたい場合は前後の空白の除去と重複行の削除を両方オンにします。Apple と apple も同じとみなすなら「大文字小文字を無視 (重複・並べ替え)」を追加します。全体の重複削除で残る表記は先に出たほうです。
日本語と文字の違い
空白を除去しても、英字の大文字小文字を無視しても、日本語の表記をすべて同じにはしません。このツールはUnicode正規化や全角・半角の統一を行いません。「が」1文字と、「か」に結合濁点を続けた文字列は、似て見えても別の行として残ります。
次の5行は公開サンプルです。入力を入れ替え、重複行を削除と大文字小文字を無視をオン、連続重複のみはオフ、並べ替えは「なし」で試してください。行番号はオフのままにします。
が
が
ガ
ガ
が
結果は先頭から4行です。最後の「が」だけが消えます。見た目では区別しにくいため、各行の内訳も示します。
| 入力行 | 文字の内訳 | この設定の結果 |
|---|---|---|
| 1行目 が | U+304C | 残る |
| 2行目 が | U+304B + U+3099 | 残る |
| 3行目 ガ | U+30AC | 残る |
| 4行目 ガ | U+FF76 + U+FF9E | 残る |
| 5行目 が | U+304C、1行目と同じ | 消える |
MDNのUnicode正規化の説明では、NFCのような正準等価性の正規化と、NFKCのような互換正規化を区別しています。このサンプルではNFCで1・2行目が同じ文字列になり、NFKCではさらに3・4行目も同じ文字列になります。ただしこれは正規化を別に行った場合の説明で、このツールの設定ではありません。ひらがなの「が」とカタカナの「ガ」はNFKCでも別です。
氏名・商品コードなどを整理するときは、元のリストを残し、「見た目が似ているから同じ」と決めずに、何を同一視してよいかを先に確認してください。互換正規化では丸数字などの表記も変わり得ます。自動で一括置換するより、残った行を原文と照合する方が適切な場合があります。個人情報はここに入力せず、この公開サンプルで動きを確かめてください。
並べ替えと行番号で仕上げる
整理を終えた行を最後に仕上げる2つが、並べ替えと行番号です。
並べ替えは昇順(A→Z)と降順(Z→A)から選べます。さらに行番号を有効にすると、各行の前に 1.、2.、3. が順に付きます。重複を消して並べ替えたリストに番号まで振れば、文書やメールにそのまま貼れる番号付きリストが一度に仕上がります。
ただし数字の大小を考慮する並べ替えではありません。このツールの文字列比較では、商品コード SKU-10 が SKU-2 より前に来ます。在庫番号やファイル名の順番が重要なら、出力を転記する前に確認してください。また、CSV の列を分解せず、行全体を一つの項目として比較します。同じメールアドレスでも名前が違う2行は、ここでは同じ行になりません。
そのリスト、どこで整理していますか
最後はデータが留まる場所の話です。整理のために貼り付ける行には、メールアドレスや社員番号、ログのように外へ出ると困る値が混ざっていることが少なくありません。
PiPi Worlds の 行整理ツールはブラウザ内で文字列を変換し、入力をサーバーに送る処理はありません。ページ閲覧・表示性能は Cloudflare Web Analytics が別途計測します(プライバシーポリシー)。端末・拡張機能まで含めた安全の証明ではないため、個人情報や認証情報、社内ログは匿名化した例で試してください。Windows と Mac でコピーした CRLF と LFが混ざるテキストは、結果で LF にそろいます。整理したリストの文字数は 文字数カウントで確認できます。行ごとの JSON は JSON フォーマッターに一行ずつ入れてください。複数の JSON 値をまとめた NDJSON は扱えません。