ZeroTool Workbench
テキスト行ツール
重複行削除・アルファベット/数値順ソート・反転・シャッフル・トリム。無料、ブラウザ完結。
使い方
- 処理したいテキスト(1行に1項目)を入力欄に貼り付けます。
- 適用したい操作(重複削除・ソート・シャッフルなど)をクリックします。
- 結果をコピーします。
活用例
- メールアドレスリストの重複削除
- キーワードリストのアルファベット順整理
- ランダムなサンプリングのためのシャッフル
- ログエントリの逆順表示
各ボタンの動作
どのボタンも入力欄を読み、出力欄に書き込みます。入力は変わりません。複数の処理(トリム → 重複削除 → ソート)を続けるときは、各ステップの間に出力を入力へコピーし直してください。
| ボタン | ルール |
|---|---|
| 重複削除 | 各行の最初の出現を元の順序で残します。大文字小文字や空白も含めて完全一致したときだけ重複とみなします。awk '!seen[$0]++' と同じ結果です |
| A→Z 並び替え / Z→A 並び替え | ブラウザの既定ロケールで String.prototype.localeCompare |
| 数値順 | 各行を parseFloat で読み、数値にならない行は末尾に昇順で並べます |
| 逆順 | 行の順序を反転 |
| シャッフル | ランダムな順序(クリックごとに変わる) |
| 行トリム | 各行の先頭と末尾の空白を削除 |
| 空行削除 | 空の行と空白だけの行を削除 |
例:混在したリストのソートと重複削除
入力(最終行の末尾にスペースが1つあります):
banana
Apple
apple
Cherry
_x
10
9
éclair
Zebra
apple
apple
A→Z 並び替え(ブラウザの言語が英語の場合):
_x
10
9
apple
apple
Apple
apple
banana
Cherry
éclair
Zebra
並びはバイト値ではなくロケールの規則に従います。大文字と小文字が隣り合い、é は e の近くに来ます。比較は数値ではなく文字単位なので 10 が 9 より前です。シェルの LC_ALL=C sort ならバイト順になります:
10
9
Apple
Cherry
Zebra
_x
apple
apple
apple
banana
éclair
同じ入力で重複削除すると apple が1つ消え、apple (末尾スペース付き)は別の行として残ります:
banana
Apple
apple
Cherry
_x
10
9
éclair
Zebra
apple
末尾の空白を区別したくない場合は、先に行トリムして結果を入力に戻してから重複削除します。
例:数値順の読み取り方
1,000
v2
-3
1e3
10px
3
0x10
4
は次のようになります。
-3
0x10
1,000
3
4
10px
1e3
v2
parseFloat は先頭の数値を読み、使えない文字で止まります。0x10 は 0、1,000 は 1、10px は 10、1e3 は 1000 として読まれます。 4 は先頭のスペースを保ったままです。v2 は数字で始まらないので末尾に回ります。
コマンドラインでの対応
| 処理 | シェル | このツールとの違い |
|---|---|---|
| 順序を保って重複削除 | awk '!seen[$0]++' file.txt | 同じ結果 |
| 隣接する重複の削除 | sort file.txt | uniq | 出力がソートされる |
| ソート | sort file.txt | LC_COLLATE に従う。LC_ALL=C でバイト順 |
| 数値ソート | sort -n file.txt | 1,000・0x10・1e3 の扱いが異なる |
| 逆順 | tac file.txt(GNU)/ tail -r file.txt(macOS) | 同じ結果 |
| 空行削除 | sed '/^[[:space:]]*$/d' file.txt | 同じ結果 |
| 各行のトリム | sed 's/^[[:space:]]*//;s/[[:space:]]*$//' file.txt | ASCII の空白なら同じ結果 |
制限
- 大文字小文字を無視するモードはありません。必要なら先にテキストケース変換で小文字にしてください。
- 改行(LF)で行を分けます。貼り付けた Windows の改行はブラウザのテキスト欄が LF にそろえます。
- アルファベット順はブラウザの言語設定に左右されるため、アクセント付きや大文字小文字の混じった行は端末によって並びが変わることがあります。
- 行数の上限はなく、ブラウザのメモリが上限です。
FAQ
どの操作に対応していますか?
重複行の削除(大文字小文字を区別)、昇順・降順のアルファベットソート、数値ソート、行の反転、ランダムシャッフル、各行の前後の空白トリム、空行削除に対応しています。
複数の操作を組み合わせられますか?
はい。ただし各ボタンは入力欄を読むため、重複削除の後にソートするなら、出力を入力欄にコピーし直してからソートしてください。
空行も処理されますか?
はい。空行の除去オプションもあります。
データはサーバーに送信されますか?
いいえ。すべての処理はブラウザ内で完結します。