>_devtools-hub
テキストユーティリティ開発tips

リスト状のテキストを整理する手順 — 重複削除・並べ替え・形式変換

1行1データのテキストを整理する手順を、表記ゆれの吸収→重複の処理→並べ替え→コード用の形式変換の流れで解説します。辞書順で数値が正しく並ばない理由や、2つのリストの共通部分を求める方法も整理します。

メールアドレスの一覧、ログから抜き出したID、スプレッドシートからコピーした商品コード——1行1データのテキストは日常的に扱いますが、そのままでは使えないことがほとんどです。重複が混ざっている、余計な空白が付いている、順番がバラバラ、そして最後にコードへ貼り付けられる形にしたい。これらを手作業で直すと時間がかかるうえ、必ずどこかで見落としが出ます。この記事では、リスト状のテキストを整理する手順を、表記ゆれの吸収から重複処理、並べ替え、形式変換まで順番に紹介します。

1. まず表記のゆれを揃える

最初にやるべきは、比較の土台を揃えることです。ここを飛ばすと、後の重複削除で取りこぼしが起きます。よくあるのが、行末に半角スペースが残っている、コピー元の違いで大文字小文字が揺れている、そして空行が混ざっている、という3つです。Line Tools の「前後の空白を削除」で不要な空白を取り、「空行を削除」で空の行を落とします。この2つを先にかけておくと、以降の処理が安定します。注意したいのは、データの中に意味のある空白が含まれる場合です。たとえば氏名の姓と名の間のスペースは残す必要があるため、前後の空白だけを削る処理が適切です。行の途中の空白まで一律に削ると別の問題を生むので、まずは前後の整理にとどめるのが安全です。

この手順で使うツール

Line Tools

行の並べ替え・重複削除・整形をまとめて処理

2. 目的に応じて重複を処理する

重複の処理は、目的によって選ぶ操作が変わります。単に一覧をきれいにしたいなら「重複行を1つにまとめる」で、同じ行が複数あっても最初の1つだけが残ります。一方、本当に1回しか登場しないものだけを知りたいなら「1回だけ出る行を残す」を使います。この2つは結果が異なるので混同しないよう注意が必要です。そして「重複した行だけ残す」は、二重登録の調査に使えます。応用として、2つのリストの共通部分を求めることもできます。それぞれのリストから先に重複を除いたうえで2つを連結し、「重複した行だけ残す」を実行すると、両方に含まれる行だけが残ります。表記ゆれが心配な場合は、大文字小文字を区別しないオプションを有効にすると、Apple と apple を同じものとして扱えます。

この手順で使うツール

Line Tools

行の並べ替え・重複削除・整形をまとめて処理

3. 正しく並べ替える

並べ替えでよくある失敗が、数値が期待通りに並ばないことです。辞書順(昇順)では文字列として先頭から1文字ずつ比較するため、2、10、100 は「10、100、2」の順になります。数値として並べたい場合は「数値順ソート」を選びます。この処理は各行から最初に現れる数値を取り出して比較するため、id:2 や No.10 のように接頭辞が付いていても正しく並びます。数値を含まない行は末尾にまとめられるので、混在したデータでも壊れません。文字数順ソートは、極端に長い行や短すぎる行を見つけるのに便利で、データの異常値を洗い出す用途に向きます。なお、日本語を含むリストの辞書順は、環境によって並び順の解釈が変わることがあるため、厳密な順序が必要な場合は、あらかじめ読み仮名やコードを付けて並べる方が確実です。

この手順で使うツール

Line Tools

行の並べ替え・重複削除・整形をまとめて処理

4. コードや設定に貼れる形にする

整理が済んだら、貼り付け先の形式に合わせます。ここで使えるのが接頭辞・接尾辞の一括付与です。配列の要素にしたければ、接頭辞にダブルクォート、接尾辞にダブルクォートとカンマを指定すれば、そのままコードに貼れる形になります。SQLのIN句に渡す場合も同じ考え方です。Markdownの箇条書きにしたい場合は、接頭辞にハイフンと半角スペースを指定します。逆に、コードから抜き出した行を素のデータに戻したい場合は「接頭辞・接尾辞を外す」を使います。手順書やレビュー用に行番号を振りたいときは「連番を振る」が使えます。いずれも単純な処理ですが、数十行を手で編集すると必ず抜けが出る部分なので、一括処理に任せる価値があります。

この手順で使うツール

Line Tools

行の並べ替え・重複削除・整形をまとめて処理

5. 仕上がりを確認する

最後に、意図した結果になっているかを確認します。基本は件数の確認です。処理前後の行数と、いくつ減ったかを見れば、想定と合っているかがすぐ分かります。想定より多く減っている場合は、表記ゆれを吸収するオプションが効きすぎている可能性があります。逆にほとんど減らない場合は、見えない文字が混ざっていて別物として扱われているかもしれません。その疑いがあるときは String Inspector で文字を1つずつ確認すると、ゼロ幅スペースなどの不可視文字を見つけられます。整理前と整理後を並べて確認したい場合は Diff Viewer が使えます。命名規則を揃える必要がある場合は Text Case Converter で、キャメルケースやスネークケースに一括変換できます。行単位の整理はここで完了させ、その先の用途に応じて他のツールへつなぐのが効率的です。

この手順で使うツール

String Inspector

文字列を1文字ずつ分解 — Unicodeコードポイント・UTF-8バイト数・文字種を可視化

まとめ

リスト状テキストの整理は「表記のゆれを揃える → 目的に応じて重複を処理する → 正しく並べ替える → 貼り付け先の形式にする → 件数で確認する」という流れで進めると、取りこぼしを防げます。特に「重複処理は3種類あり目的で選ぶ」「辞書順では数値が正しく並ばない」「2つのリストの共通部分は連結してから重複抽出で求められる」の3点は、覚えておくと作業がぐっと速くなります。

このツールで試す

Diff Viewer

テキストの差分をリアルタイムで可視化

開発者向けユーティリティテキスト

使ってみる →

BOOTH

Text Case Converter

テキストを8形式のケースに一括変換・コピー

開発者向けテキストユーティリティ

使ってみる →

BOOTH

文字数カウンター

文字・単語・バイト数をリアルタイム集計

テキスト執筆開発者向け

使ってみる →

BOOTH

String Inspector

文字列を1文字ずつ分解 — Unicodeコードポイント・UTF-8バイト数・文字種を可視化

テキストUnicodeエンコード開発者向け

使ってみる →

BOOTH

Line Tools

行の並べ替え・重複削除・整形をまとめて処理

テキストユーティリティ開発者向け

使ってみる →

関連ガイド