ZeroTool Workbench
文本行工具
在线去除重复行、按字母或数字排序、反转、随机打乱、去除空白行。免费在线工具,纯浏览器端运行。
使用方法
- 将文本粘贴或输入到 Input Lines 文本框中——每行一个条目。
- 点击任意操作按钮:Remove Duplicates(去重)、Sort A→Z / Z→A(字母排序)、Sort Numeric(数字排序)、Reverse(翻转)、Shuffle(随机打乱)、Trim Lines(去除首尾空白)或 Remove Empty(删除空行)。
- 结果显示在 Output 文本框中,点击 Copy 复制到剪贴板。
操作示例
去除列表中的重复项
输入:
apple
banana
cherry
apple
banana
date
点击 Remove Duplicates 后:
apple
banana
cherry
date
数字排序
输入:
100 items
3 items
42 items
7 items
点击 Sort Numeric 后:
3 items
7 items
42 items
100 items
组合操作
可以组合多步操作:先 Trim Lines 清理空白,再 Remove Duplicates 去重,最后 Sort A→Z 排序。每个按钮都读取输入框,所以步骤之间要把输出复制回输入。
常见用途
文本行工具适用于清理数据导出、去重邮箱列表、排序日志条目、 准备词表、清理 CSV 列以及任何需要逐行操作文本的场景。
各按钮的规则
每个按钮都读取输入框、写入输出框,输入内容不会被改动。要连续做几步(先去空格、再去重、再排序),每一步之间把输出复制回输入。
| 按钮 | 规则 |
|---|---|
| 去除重复 | 按原顺序保留每行第一次出现的位置。必须完全相同才算重复,大小写和空格都算。结果与 awk '!seen[$0]++' 相同 |
| A→Z / Z→A 排序 | String.prototype.localeCompare,使用浏览器默认语言 |
| 数值排序 | 用 parseFloat 读取每行;读不出数字的行排到最后,按 A→Z 排 |
| 反转 | 行顺序倒过来 |
| 随机排序 | 随机顺序(每次点击结果不同) |
| 去除首尾空格 | 删掉每行首尾的空白 |
| 删除空行 | 删除空行和只含空白的行 |
示例:混合列表的排序与去重
输入(最后一行末尾有一个空格):
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,而 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 不以数字开头,排到最后。
对应的命令行
| 操作 | Shell | 与本工具的差别 |
|---|---|---|
| 去重并保留顺序 | 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 空白结果相同 |
限制
- 没有忽略大小写的模式。需要时先用大小写转换工具转成小写。
- 按换行符分行;粘贴的 Windows 换行会被浏览器文本框统一成换行符。
- 字母顺序取决于浏览器的语言设置,带重音或大小写混合的行在不同电脑上可能排得不一样。
- 没有设置行数上限,上限取决于浏览器内存。
FAQ
去重是如何工作的?
逐行精确比较(区分大小写)。保留每个唯一行的首次出现,后续重复行被移除,同时保持首次出现的原始顺序。
比较是否区分大小写?
是的。'Apple' 和 'apple' 被视为不同的行。如需不区分大小写比较,请先使用我们的文本大小写转换工具将文本转为小写。
数字排序如何工作?
每行用 JavaScript 的 parseFloat 读取开头的数字(10px 读成 10,1,000 读成 1,0x10 读成 0)。开头没有数字的行按字母顺序排到末尾。
有行数限制吗?
没有设置上限。处理在浏览器中完成,上限取决于浏览器内存。
数据会发送到服务器吗?
不会。所有处理完全在浏览器中通过 JavaScript 运行,数据不会离开您的设备。