重複行削除・テキスト並び替え・空白整理

重複行削除・並び替え・空白と改行の整理

重複行削除・並び替え・空白と改行の整理

重複行削除・テキスト並び替え・空白整理について

このツールには、行単位のテキスト処理が4つのモードで入っています。重複行の削除、行の並べ替え、空白・空行の整理、改行の結合と折り返しです。どれも入力を行に分け、行を消す、順番を変える、行内の空白を直す、行の区切りを引き直すという作業です。結果の改行はすべてLF(\n)にそろえます。

単純な作業ですが、結果が思ったとおりにならないことがあります。原因の多くは見えない文字と、言語ごとの並べ替え規則です。

重複削除: 何を「同じ行」とみなすか

初期設定では、各行の前後の空白を削り、大文字小文字を区別し、最初に出てきた行を残します。「apple」と「 apple」は同じ行ですが、「Apple」は別の行です。大文字小文字を無視すると比較のときだけ小文字にし、結果には残した行の元の表記が出ます。

「最後の行を残す」は、後ろの行を残すだけでなく結果の順番も変えます。各行が最後に現れた位置の順に並びます。新しい記録が下に追加されるログから最新のものだけを残したいときに向いています。

同じに見える2行が、文字コードでは違うことがあります。ノーブレークスペース(U+00A0)は半角スペースと別の文字で、ゼロ幅スペース(U+200B)は前後の空白削除でも消えず、「が」は1文字(U+304C)でも「か」+濁点(U+3099)の2文字でも書けます。初期設定でオンの「見えない違いを無視」は、比較のときだけNFC正規化をし、NBSPを半角スペースに、ZWSPとBOMをないものとして扱います。結果には最初に出てきた行の原文がそのまま残ります。全角スペースと半角スペースは別の文字のままなので、そろえたいときは先に空白整理モードを通してください。

並べ替え: 五十音順は文字コード順ではない

並べ替えモードは文字コードの大小ではなく、ブラウザのIntl.Collatorに「並び替えの言語」で選んだ言語の規則を渡して比較します。初期値はページの言語で、スペイン語やスウェーデン語のリストならその言語に切り替えます。日本語ページでは日本語の規則になり、ひらがなとカタカナは区別されずに五十音順に並び、濁音は清音のすぐ後に来ます(かき、かぎ、ガム)。

漢字は読みでは並びません。ブラウザが知っているのは文字だけで読みではないため、「山」と「川」はコード表上の順番で並びます。実際に「山、川」の順になり、読み(かわ、やま)の順ではありません。名簿などを五十音順にしたいときは、読みがなの列を作ってそちらで並べ替える必要があります。

初期設定では大文字小文字もアクセントも無視する基準(base)です。「resume」と「résumé」は同じ値とみなされ、入力の順番が保たれます。

数字の並べ替え(自然順)をオンにすると、文字列の中の数字を値で比べます。「第2章、第10章」や連番の画像ファイルは、この設定がないと10が2より前に来ます。

空白整理: 全角スペース、NBSP、改行コード

空白整理モードは、行末の空白削除、行内の連続空白を1つにまとめる、連続する空行を1行にする、文書の前後の空行を削除する、が初期設定でオンです。ここでの「空白」には半角スペースとタブのほか、全角スペース(U+3000)とNBSPも含まれます。行の途中の全角スペースは半角スペース1つに置き換わりますが、行頭の字下げ(全角スペース、半角スペース、タブ)はまとめる対象から外れるので、段落の字下げはそのまま残ります。ゼロ幅スペース(ZWSP)とBOMは初期設定で削除します(絵文字をつなぐZWJは残します)。

Windowsのメモ帳は長くCRLF(\r\n)で保存してきました。macOS・LinuxはLF(\n)です。このモードは両方を認識し、LFにそろえます。Windowsで編集したシェルスクリプトが「\r: command not found」で止まるときは、この変換で直ります。

改行の結合と折り返し

PDFからコピーした文章は、見た目の行末ごとに改行が入っています。改行モードは空行を段落の区切りとみなし、段落内の改行だけをつなぎます。日本語はつなぎ文字を「なし」にしてください。スペースでつなぐと、単語の途中に余計な空白が入ります。

折り返しは、指定した幅を超えないように改行します。幅は等幅フォントの桁数で数え、半角は1桁、全角(漢字・かな・ハングル)と絵文字は2桁です。英語や韓国語はスペースの位置で、スペースのない日本語・中国語は文字の間で改行します。このとき基本的な禁則処理をして、「。」「、」「」」や小さい「っ」「ゃ」、長音「ー」が行頭に、「「」「(」が行末に来ないようにします。1語が幅より長いときだけ「長い単語を分割」が効き、これは禁則を無視して幅で切ります。

例

重複削除の初期設定

入力
apple Apple apple banana apple
結果
apple Apple banana(5行→3行)

「 apple」は前の空白を削ると「apple」と同じなので消え、「Apple」は大文字小文字が違うので残ります。

日本語ページでの並べ替え

入力
さくら アイス あめ 山 川 かき ガム かぎ
結果
アイス あめ かき かぎ ガム さくら 山 川

かなは五十音順、ひらがなとカタカナは同列、濁音は清音の後です。漢字はかなの後ろに来て、読みの順にはなりません。

PDFの改行をつなぐ

入力
日本語の文章が PDFで途中改行 されている。
結果
日本語の文章がPDFで途中改行されている。

つなぎ文字を「なし」にした結果です。

日本語の折り返し(幅20)

入力
日本語の文章がPDFで途中改行されている。長い一文。
結果
日本語の文章がPDFで 途中改行されている。 長い一文。

全角は2桁と数えるので、1行は全角10文字ぶんです。スペースがなくても文字の間で改行し、「。」は前の文字と一緒に送られて行頭に来ません。

使い方

  1. 上のタブで、重複削除・並べ替え・空白整理・改行のどれかを選びます。
  2. テキストを貼り付け、オプション(大文字小文字、自然順、空行、幅など)を決めます。
  3. 結果と行数を確認してコピーします。

よくある質問

同じに見える行が消えません。

NBSP、ゼロ幅スペース、Unicode正規化の違いは初期設定でオンの「見えない違いを無視」が吸収します。それでも残る場合は全角・半角スペースの違いや大文字小文字の違いが考えられます。空白整理モードを先に通してください。

漢字が読みの順に並びません。

ブラウザは漢字の読みを知らないためです。読みがなで並べ替えてください。

1、10、2の順になります。

数字の並べ替え(自然順)をオンにすると1、2、10になります。

改行をCRLFのまま出せますか?

出力は常にLFです。必要ならエディタで改行コードを変えて保存してください。

出典

基準日:

プライバシーとデータの扱い