← 全部工具

数据不出浏览器

文本行排序 / 去重 / 打乱

免费行排序工具。对文本行升序/降序排序、去重、反转或打乱。

把文本当作数据来排序

只有在确定「按什么规则比较」之后,排序才有明确定义。忽略大小写的顺序会把小写词和它的大写形式排在一起;而按码位排序会把所有大写字母排在小写之前。两种都不算错,但对数据选错就是错的。

另一个坑是数字。按字符比较会把 10 排在 9 前面,于是一串文件名或版本号看起来像坏掉了,尽管算法完全照指令执行。解决办法是按数值比较,或把数字补零到固定宽度。

去重有同样的问题。只差行尾空格或大小写的两行是不同的字符串,朴素去重会把它们都留下,而在屏幕上它们看起来完全一样。请先去空白,再决定比较是否区分大小写,并且在排序之后去重,而不是之前。

常见问题

排序规则?
使用 localeCompare,适合常见字母与数字行。
去重保留哪一行?
保留第一次出现的行。
数据会上传吗?
不会。
为什么 10 排在 9 前面?
因为比较是文本式的:字符 1 比 9 靠前,所以任何以 1 开头的数字都会更早出现,与数值大小无关。数值场景请补零到固定宽度,或改用数值比较。
怎么删除重复行?
先排序再删除相邻重复项,这比拿每一行和其余所有行比较便宜得多。比较前先去掉空白,否则看起来完全相同的两行会因为其中一行有行尾空格而都保留下来。
排序会改变文本大小写吗?
不会。比较是按语言环境进行的,不会修改行内容,所以原有的大小写和空格都会保留在结果里,只有顺序变化。这意味着你可以排序、查看、再排回去,而不会丢东西。

相关工具