文本去重与排序工具说明
收集来的邮箱列表有一堆重复、从系统导出的 ID 顺序乱、关键词表需要按长度排一遍——这些手工整理的活儿,其实一行命令就能搞定,但不是每个人都随时有个终端。这个工具把这些操作做成了复选框。
它能做的六件事
- 去重:完全相同的行只保留第一次出现的那一条。可以设置忽略大小写,这样
Apple和apple会被当成同一个。 - 排序:提供 9 种排序方式,覆盖日常绝大多数需求。
- 打乱:随机重排顺序。抽奖、随机分组、生成随机样本时用得上。
- 大小写转换:全大写、全小写、首字母大写、每词首字母大写。
- 去空格:清掉每行前后的空格和 Tab。从网页或表格里复制出来的数据,经常在行尾藏着看不见的空格,导致去重失效——这一步往往才是关键。
- 统计数量:可以在每行后面附上它出现的次数,方便找出真正的重复项。
排序方式的区别
排序看着简单,实际有多种口径,选错了结果就不对:
- 字典序:逐个字符比较编码值。问题是数字会出乱子——字典序认为
10排在2前面,因为字符1小于2。 - 自然序:把连续数字当成一个整体比较,所以
2排在10前面。文件名、章节号、版本号(v1 v2 v10)必须用这个。 - 按长度:短的在前面。整理关键词、标签时常用。
- 纯数值:整行当数字处理。遇到不能转成数字的行,会排到最后。
中文还有一层:字典序是按汉字编码比的,结果和拼音顺序、笔画顺序都不一致。需要严格按拼音排,得用专业工具,本工具做不到。
「忽略大小写去重」的隐藏问题
勾选这个选项后,Apple、APPLE、apple 会合并成一条。保留的是最先出现的那个写法。
这点在处理邮箱时很重要——邮箱地址理论上不区分大小写,但很多人习惯把首字母大写。如果你的列表里同时有 Zhang@qq.com 和 zhang@qq.com,用忽略大小写去重能合并掉。但如果是处理区分大小写的标识符(比如密码、Base64、Unix 文件名),千万别勾这个,会把不同的东西误判成同一个。
做数据清洗的推荐顺序
如果你在整理一份脏数据,建议按这个顺序操作:
- 第一步 去空格。先清掉行首行尾的空白,否则
"apple "和"apple"会被当成两条不同记录。 - 第二步 删空行。空行会干扰去重和排序结果。
- 第三步 统一大小写。如果需要忽略大小写,先转换比去重时忽略更彻底。
- 第四步 去重。前面的步骤做完,去重才是干净的。
- 第五步 排序。最后排序便于对比检查。
顺序错了结果就会打折扣。比如先去重再去空格,就可能留下"看起来一样但实际不同"的多条记录。
能处理多少行
几万行完全没问题,浏览器处理文本很快。十万行以上会开始感觉到卡顿,取决于电脑内存。如果数据量特别大(几十万行以上),建议还是用命令行工具:sort -u 去重排序、awk '!a[$0]++' 保序去重、shuf 打乱,都比在网页里处理更高效。
数据安全
所有处理都在浏览器内存里完成,没有任何网络请求。你可以按 F12 打开 Network 面板,点"处理"看看——一个请求都不会发出。对于含手机号、邮箱、客户名单的数据,这点很关键。
常见问题
去重后原来的顺序会变吗?
去重本身不打乱顺序——保留的是首次出现的那个位置。所以只要排序方式选"不排序",输出的顺序和输入一致,只是重复项被删掉了。如果同时选了排序,那自然会重排。
怎么知道删掉了多少条?
处理完成后上方状态栏会显示原始行数、去重后行数、删掉了多少条。勾选"输出时带上出现次数"还能看到每条具体重复了几次。
中文排序为什么不是按拼音?
因为字典序用的是字符编码值,汉字编码顺序和拼音、笔画都不对应。本工具提供的是编码序,结果稳定但不能当拼音序用。需要按拼音排,可以先用带拼音标注的数据在表格软件里排。
随机打乱是可复现的吗?
不可复现。每次点击都会用新的随机起点,同一份输入两次打乱结果不同。这正是打乱该有的行为——如果结果可复现,就不随机了。
支持按列去重吗,比如 CSV 的第二列?
不支持。本工具按整行文本比较。如果只想按某一列去重,可以先把该列单独复制出来处理,或者用表格软件的数据功能。