按行去重排序

去除空行、重复行,可选按字母顺序排序

按行去重与排序:精确匹配的边界和常见意外

去重是"精确匹配",不是"看起来一样"

判断两行是否重复,工具做的是逐字符比较。所以下面这些"看起来重复"的情况不会被去掉:

两行的实际内容是否判为重复原因
apple 与 apple (末尾空格)否行尾空白是内容的一部分
apple 与 Apple否大小写敏感
café 与 café(组合音标)否Unicode 码点序列不同,渲染结果却一样
a b 与 a  b(两个空格)否空白字符数量不同

所以"去重没生效"的最常见原因是行尾空白或不可见字符。从网页或 PDF 复制来的文本尤其容易带这类字符。处理顺序建议是:先去空行和首尾空白 → 再去重。工具提供"去空行"开关,也会在判重时按行内容精确比较。

另外注意:含有换行的字段本身不是"一行"。从 CSV 复制数据时,如果某个字段内部有换行(未加引号处理的情况),它会被拆成多行,去重逻辑就在错误的粒度上工作了。

保留哪一条

遇到重复行时,工具保留首次出现的,丢弃后面的。所以如果重复行的上下文中承载了位置信息,去重后的结果会失去它。

需要"保留最后一条"或"按某规则选一条"时,按行去重就不够了——那属于数据去重,应该按关键字段分组后取一条,用 SQL 的 DISTINCT ON、row_number(),或者脚本里处理。

排序的两种口径

工具可选按字母顺序排序,这里同样有细节:

看到"排序结果不对"时,先判断属于哪一种。列表去重加排序这个组合最常见的用途是整理关键词、域名、邮箱、IP、导入白名单——这类数据里的"重复"往往是格式差异(一个带 www 一个不带,一个尾斜杠一个有),需要在去重前先做规范化,否则去不干净。

去重的实际用途

最后一条值得强调:去重会隐藏冲突。同名不同值的两行不是"重复",去重后你会丢掉其中一个,而且不知道丢了哪个。处理配置合并时,应该先找出同名不同值的项并人工确认,再去做纯粹的重复消除。

工具怎么用

粘贴每行一条的文本,按需要勾选"去空行"、"去重"、"排序",点处理,再用复制按钮取走结果。三个开关可以自由组合——例如只想去掉空行而保留重复项,就取消"去重"。全部处理在浏览器本地完成。

常见问题

排序是按什么规则?

使用 JS 默认字符串排序,按 Unicode 码点比较,区分大小写。需要中文拼音排序可先用其他工具处理。

去重是保留第一次还是最后一次出现?

保留第一次出现的位置,后续重复行被移除。