テキストを行単位で一括処理する方法
ログの抽出結果、スプレッドシートからコピーしたリスト、メールアドレスの一覧——1行1データのテキストを扱う場面では、「重複を消したい」「並べ替えたい」「空行を取りたい」といった処理が頻繁に発生します。エディタのマクロやコマンドラインでもできますが、環境によって使えるコマンドが違ったり、一度きりの作業のためにスクリプトを書くのは手間です。Line Tools は、こうした行単位の定番処理をブラウザ上でまとめて行えるツールです。入力を貼り付けて操作を選ぶだけで結果が即座に表示され、処理前後の行数と増減も確認できます。データは外部に送信されず、すべてブラウザ内で完結します。
重複行の3つの扱い方を使い分ける
重複の処理には目的の異なる3種類があります。1つ目の「重複行を1つにまとめる」は、同じ行が複数あっても最初の1つだけを残す処理で、一覧の正規化に使います。2つ目の「1回だけ出る行を残す」は、2回以上現れた行をすべて除外し、本当にユニークなものだけを取り出します。3つ目の「重複した行だけ残す」は逆に、2回以上現れた行だけを抽出するもので、二重登録の調査や、2つのリストの共通部分を洗い出す用途で役立ちます。たとえば、2つのファイルを連結してからこの処理を行うと、両方に含まれる行だけが得られます。目的が「整理」なのか「検出」なのかで選ぶ処理が変わるため、まず何をしたいのかを言葉にしてから選ぶと迷いません。
比較の条件を揃えて取りこぼしを防ぐ
重複判定やソートで見落とされがちなのが、比較の条件です。「Apple」と「apple」、「 test」と「test」は、文字列としては別物なので、そのままでは重複と判定されません。実際のデータでは、コピー元の違いで大文字小文字が揺れていたり、行末に半角スペースが残っていたりすることがよくあります。Line Tools では「大文字小文字を区別しない」「前後の空白を無視」のオプションを用意しており、これらを有効にすると表記の揺れを吸収して比較できます。より確実にしたい場合は、先に「前後の空白を削除」を実行して入力自体を整えてから、重複処理を行う二段構えが有効です。処理後に表示される削除行数を見れば、想定通りの件数が減ったかどうかもすぐ確認できます。
ソートの種類と、数値が正しく並ばない理由
並べ替えには、辞書順(昇順・降順)、数値順、文字数順があります。ここで注意したいのが、辞書順は文字列として比較するため、数値が期待通りに並ばない点です。たとえば 2、10、100 を辞書順で並べると「10、100、2」となります。先頭の文字から1文字ずつ比較するため、「1」で始まる文字列が「2」より前に来るからです。数値として並べたい場合は「数値順ソート」を使います。この処理は各行から最初に現れる数値を取り出して比較するため、「id:10」「id:2」のように接頭辞が付いていても正しく並びます。数値を含まない行は末尾にまとめられるので、混在したデータでも破綻しません。文字数順は、短い順に並ぶため、極端に長い行や空に近い行を見つけるのに便利です。
リストをコードや設定に変換する
接頭辞・接尾辞の一括付与は、リストを別の形式に変換したいときに効きます。たとえば単語のリストに接頭辞「"」と接尾辞「",」を付ければ、そのまま配列の要素として貼り付けられる形になります。SQLのIN句に使いたい場合も同様です。Markdownの箇条書きにしたければ接頭辞に「- 」を指定します。逆に「接頭辞・接尾辞を外す」を使えば、コードから抜き出した行から余計な記号を取り除いて、素のデータに戻せます。連番付与は、手順書を作るときや、行番号を含めて共有したいときに使います。これらは単純な処理ですが、数十行を手作業で編集すると時間がかかるうえ、必ずどこかで抜けが出るため、一括処理に任せる価値があります。
よくある使い方の流れ
実務では、複数の処理を順番にかけることがほとんどです。たとえばメールアドレスの一覧を整理する場合は、「前後の空白を削除」→「空行を削除」→「大文字小文字を区別しない設定で重複行をまとめる」→「昇順ソート」という流れになります。ログから抽出したIDを調べる場合は、「重複した行だけ残す」で複数回出現したIDを洗い出し、件数を確認します。2つのリストの差分を見たい場合は、Diff Viewer と組み合わせると変化が視覚的に分かります。文字数やバイト数が気になる場合は文字数カウンター、命名規則を揃えたい場合は Text Case Converter が使えます。行単位の整理はここで済ませ、その先の用途に応じて他のツールにつなぐ、という進め方が効率的です。