跳到主内容
UniKit

文本排序

把多行文本按字母序、自然序(a2 排在 a10 前)或长度排序,支持倒序、去重、忽略大小写、按指定列与数值列排序,注释行与空行单独处理。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

待排序文本

排序选项

排序结果

结果按 LF 换行输出,可直接复制回文件。

输入多行文本后立即显示排序结果。

这个工具能做什么

  • 把从数据库导出的 ID 列表、文件名列表或日志行排好序,再贴回文件或表格。
  • 修掉「字母序把 a10 排到 a2 前面」的问题:自然序按数字大小比较,版本号 v1.9 会排在 v1.10 前面。
  • 整理 CSV / TSV 时按第 2 列或第 3 列排序,并可以把该列当数字比较,避免 10 排在 2 前面。
  • 清理粘贴来的名单:去掉空行、去掉重复行、忽略大小写后排序,注释行(# 开头)保持原样置顶。

示例

输入

banana
apple10
apple2
apple1

输出

apple1
apple2
apple10
banana

默认使用自然序:apple2 排在 apple10 前面。切到「字母序」就会变成 apple1、apple10、apple2。

常见问题

自然序和字母序有什么区别?

字母序逐字符比较,所以 apple10 排在 apple2 前面(因为字符 1 小于 2)。自然序会把连续数字当成一个数来比,apple2 在 apple10 前面,v1.9 在 v1.10 前面。排序结果不依赖系统语言,全部按 Unicode 码点比较。

注释行和空行会怎样处理?

以 # 开头的行默认被识别为注释,不参与排序并按原始顺序置顶;空行默认直接删除。取消「注释行置顶」后注释会像普通行一样参与排序,取消「删除空行」则空行保留在结果末尾。

怎么按某一列排序?

把「排序依据列」填成 1、2、3…(从 1 开始),列分隔符默认是英文逗号,制表符写 \t。某一行没有这一列时按空值处理,会排在最前面。勾选「把该列当数字比较」后按数值大小排序,非数字行排在数字行之后。

去重是按整行还是按列?

按当前排序键去重:按整行排序时整行相同才算重复,按列排序时只要该列的值相同就算重复,保留排序后的第一条。去重是在排序之后做的,所以保留的是排序结果里靠前的那条。

中文能正确排序吗?

中文按 Unicode 码点顺序排,不是拼音顺序——码点顺序对中文来说没有直观意义,因此不建议用本工具给中文名单排序。忽略大小写只影响拉丁字母,不会改变中文的相对顺序。

关键词:text sortsort linesalphabetical ordernatural sortdedupe linessort by column文本排序行排序自然排序多行排序去重按列排序

同类工具