テキストの並べ替え:文字順・長さ・数値・重複削除
テキストを1行1項目で貼り付け、並べ替えの方法(文字順、長さ、行内の数値)を選び、必要に応じて降順・シャッフル・重複削除を指定して「並べ替え」を押します。処理はすべてブラウザ内で完結し、テキストが送信されることはありません。
並べ替えが本当に必要な場面
いちばん多いのは、キーワードやドメイン、人名、タグなどの一覧を整える作業です。1行1項目のまま文字順に並べてから表計算ソフトや資料に貼れば、表の上で並べ替えをやり直すより速く終わります。
次に多いのは、番号を含む名前を人間の感覚どおりに並べる場面です。ログやファイル名には file2 と file10 が混在しがちで、単純な文字比較では file10 が先に来ますが、数値として比較すれば直感どおりの順になります。
複数のリストを結合したあとは、重複を消して長さ順に並べることがよくあります。短い語を前に置くと、タグ一覧やタグクラウド、プルダウンの選択肢が見やすくなります。
- キーワードやドメインの一覧を文字順に整える
- 複数のリストを結合し、重複削除してから長さ順に並べる
- ファイル名や番号を、文字ではなく数値の大小で並べる
- 順序に意味がない一時的な並べ替え(シャッフル)
失敗しないための手順
まず入力を「1行1項目」にしてください。このツールは行全体を比較し、カンマやタブで列を分割しません。CSV の特定の列だけを並べ替える場合は、列を分けるか表計算ソフトを使ってください。空行は保持されず、そのまま削除されます。
文字順モードでは連続する数字を数値として扱うため、file2 は file10 より前に来ます。厳密な文字コード順が必要な場合、この挙動は逆に見えます。file02、file10 のように桁を揃えると、どちらの解釈でも同じ順序になります。
重複削除は完全一致です。大文字と小文字を区別し、前後の空白も取り除きません。そのため Apple と apple は両方残り、隣り合って表示されるだけです。先頭に空白がある行は別の項目として扱われます。大文字小文字を無視して重複を消したい場合は、先にテキスト重複削除ツールで整えてから戻ってください。
シャッフルは Math.random を使います。ちょっとした並べ替えには十分ですが、抽選やチーム分けには向きません。検証できる乱数ではなく、同じ結果を再現することもできません。
中国語の順序は、このツールが計算しているのではなく、ブラウザの localeCompare('zh-Hans-CN') に任せています。Chrome、Safari、Firefox はそれぞれ独自の照合データを持つため、漢字はおおむねピンイン順になりますが、多音字やまれな字、ブラウザのバージョンによって結果が変わることがあります。人名簿や用語集のように順序を固定したい場合は、ブラウザに依存しない方法を選んでください。
- 1行1項目で貼り付ける(カンマ区切りは分割されません)
- 空行は削除されるため、必要な場合は並べ替え後に補う
- 重複判定は完全一致。表記を揃えてから実行する
- 厳密なピンイン順・画数順が必要なら別のツールを使う
代替手段と限界
コマンドラインの sort はより確実です。LC_ALL=C sort はバイト順でどの環境でも同じ結果になり、sort -t, -k2 は CSV の列単位、sort -u は重複削除、sort -R はシャッフルです。数 MB を超えるファイルも扱えます。
表計算ソフトは、すでに構造化されたデータに向いています。列単位の並べ替え、重複削除、絞り込みができ、他の列もそのまま残ります。ただしデータを読み込む手間がかかります。
このツールは行全体だけを扱います。列を指定した並べ替えや、ピンイン・画数順の厳密な並べ替えはできません。シャッフルも公平性が求められる用途には使えません。数 MB を超えると、すべての行をメモリに保持するため動作が重くなります。
- 順序を固定したい、列単位で並べたい → sort か表計算ソフト
- ピンイン順・画数順が必要 → 辞書ベースの専用ツール
- 抽選やチーム分け → 検証できる乱数を使う
よくある質問
中国語はピンイン順になりますか?
おおむねピンイン順になりますが、保証はありません。比較はブラウザの localeCompare('zh-Hans-CN') に任せており、Chrome、Safari、Firefox はそれぞれ独自の照合データを持っています。多音字やまれな字、ブラウザのバージョンによって結果が変わることがあるため、順序を固定したい場合は LC_ALL=C sort でバイト順に並べるか、スクリプトで Unicode のコードポイントを比較してください。
file2 が file10 より前に来るのはなぜですか?
文字順モードで連続する数字を数値として比較しているためです。数値として見れば file2 は file10 より小さいので、前に来ます。単純な文字比較では 1 が 2 より小さいため逆の結果になります。どちらの解釈でも同じ順序にしたい場合は、file02、file10 のように桁を揃えてください。
重複削除を有効にしたのに Apple と apple が残るのはなぜですか?
重複判定が Set による完全一致で、大文字と小文字を区別し、前後の空白も取り除かないためです。一方、並べ替えの比較は大文字小文字を無視するので、2行とも残ったうえで隣り合って表示されます。先頭に空白がある行は別項目になります。大文字小文字を無視して重複を消したい場合は、先にテキスト重複削除ツールを使ってください。
関連ツール:Sort Lines