Text Sorter:文本行排序与去重工具
按字母、数字、长度或自然顺序对文本行排序。六种排序方法,支持升序和降序。免费,无需注册。
什么是 Text Sorter?
Text Sorter 是一款基于浏览器的工具,使用六种排序方法之一对文本行重新排列:字母顺序、数值顺序、行长度、自然排序、单词数量或字符数量。每种方法均可按升序或降序运行,可选的大小写区分开关会改变大写和小写字母的排列方式。需要整理参考文献列表的作者、对配置键或日志条目排序的开发者,以及整理导出值的数据工作者,在无需打开电子表格或编写脚本就能完成可靠的多方法行排序时会使用此工具。所有处理均在您的浏览器中完成——您的文本永远不会离开您的设备——首次加载页面后,该工具还可在离线状态下使用。
主要功能
- 字母顺序排序(A–Z) — 使用基于 Unicode 码点的标准字典序对行进行排序,默认不区分大小写。
- 反向字母顺序(Z–A) — 相同的字母排序,按降序排列。
- 数值排序 — 提取并比较每行的前导数值,正确处理整数和小数(纯字母排序在此会出错)。
- 按行长度排序 — 按字符数从最短到最长或从最长到最短对行进行排序。
- 自然排序 — 将嵌入的数字作为数值而非字符序列处理,使"item2"排在"item10"之前(纯字母排序会将"item10"排在"item2"之前)。
- 按单词数排序 — 按各行包含的以空格分隔的单词数对行进行排序。
- 按字符数排序 — 按总字符数对行进行排序(与行长度排序等效,但作为单独模式提供以求清晰)。
- 升序和降序 — 可针对任何排序类型在两种顺序之间切换。
- 大小写区分选项 — 启用后,大写字母排在小写字母之前(A 在 a 之前);默认禁用,以便混合大小写文本按预期排序。
- 批处理模式 — 高级功能,可对逐行提交的多个独立文本块进行排序。
- 将结果复制到剪贴板 — 一键复制排序后的输出。
- 预设和历史记录支持 — 高级功能,将您的排序类型、顺序和大小写设置保存为预设,并记录之前的排序操作。
如何使用 Text Sorter
第 1 步:打开工具
导航至 Text Sorter。顶部的选项面板显示两排按钮:顺序(升序 / 降序)和排序依据(字母顺序、数值、按长度、自然排序、单词数、字符数)。下方有"区分大小写"复选框。默认选中升序和字母顺序,大小写区分为关闭状态。
第 2 步:选择排序类型和顺序
点击与您的数据匹配的排序类型按钮:
- 字母顺序 — 适用于一般文本列表、姓名、单词。
- 数值 — 适用于以数字开头的行(价格、分数、ID)。
- 按长度 — 按行的长度对行进行排序。
- 自然排序 — 适用于带版本号的文件名、编号项目,或任何嵌入数字应按数值排序的列表。
- 单词数 — 按单词数量从最少到最多对行进行排序。
- 字符数 — 按总字符数对行进行排序(与按长度概念相同,单独列出)。
然后点击升序(从小到大 / A 到 Z),或点击降序(反向)。
第 3 步:设置大小写区分(可选)
默认情况下,大小写区分为关闭状态。这意味着"banana"、"Banana"和"BANANA"彼此排序相同。如果需要大写字母排在小写字母等效项之前,请勾选"区分大小写"框——例如,在对编程标识符排序时,大小写具有语义上的重要性。
第 4 步:粘贴输入内容
点击输入文本区域并粘贴您的文本行。文本区域上方以小字体显示行数。右侧的排序输出面板随每次按键立即更新。更改排序类型、顺序或大小写设置也会即时重新排序输出。
示例:字母升序,不区分大小写:
输入:
cherry
Apple
banana
date
输出:
Apple
banana
cherry
date
示例:数值降序:
输入:
item: 42
item: 7
item: 100
item: 15
输出:
item: 100
item: 42
item: 15
item: 7
第 5 步:复制结果
点击"复制结果"将排序后的输出复制到剪贴板。弹出通知确认复制成功。当输出为空时,按钮处于禁用状态。复制操作还会在您的工具历史记录(支持者功能)中写入一条标签为 Sort alphabetical asc (12 lines) 的记录。
实际使用示例
对参考文献列表进行字母排序
一份包含 40 条随机顺序条目的参考文献需要按字母顺序排列。将条目粘贴进来——每行一条——选择字母顺序和升序,输出面板即会按 A 到 Z 的顺序显示。复制后粘贴回您的文档。
正确排序版本号
一个发布说明文件列出了版本号:v1.9、v1.10、v1.2、v1.11。字母排序会产生 v1.10、v1.11、v1.2、v1.9——这是错误的。改为选择自然排序。自然排序识别 10 在数值上大于 9,生成 v1.2、v1.9、v1.10、v1.11 这一正确顺序。
按值对数据进行排名
您有一个测试分数列表,每行一个:
87
42
95
61
78
选择数值和降序,从高到低排列:
95
87
78
61
42
在这个例子中,纯字母排序只是碰巧给出相同结果,但在同时包含 9 和 10 的列表上会失败(字母顺序中,10 排在 9 之前)。
使用技巧和最佳实践
对于文件名和版本字符串,自然排序通常是正确的选择。 对 chapter1.txt、chapter10.txt、chapter2.txt 等字符串进行字母排序会产生错误顺序。自然排序尊重嵌入的数字,给出 chapter1.txt、chapter2.txt、chapter10.txt 的正确顺序。
排序前配合 Duplicate Line Remover 使用。 如果您的列表包含重复项,请先删除它们,再进行排序。这可防止相同行在您不希望它们聚集时出现在输出中相邻位置。
大小写区分只以可预测的方式影响字母排序。 启用大小写区分后,由于大写字母的 Unicode 码点低于小写字母(A=65,a=97),所有大写行排在其小写等效项之前。如果您想要完全不区分大小写的排序,请保持该选项未勾选。
数值排序提取前导数字。 不以数字开头的行会被排序,就好像其数值为零一样,或根据其相对于零的位置放置。如果您的数据混合了带数值前缀和不带数值前缀的行,数值排序可能产生意想不到的分组。混合数据请使用字母排序。
排序后的输出与输入行数相同。 排序器不会删除重复项或空白行。在升序字母模式下,空白行排到最前面(空字符串小于任何字符)。如果还需要去重,请配合 Duplicate Line Remover 使用。
按单词数排序对于修剪或优先处理列表项很有用。 按升序单词数对功能描述列表进行排序,可快速找出最简短的条目——这些条目通常是最具体、最易于扫读的。降序排列会将最详细的条目显示在顶部,便于编辑。
常见问题排查
数值排序给出意外结果。 此排序类型使用数字解析从每行提取前导数值。不以数字开头的行被视为零。如果您的数字嵌入在行中间(而非行首),请使用自然排序——它可在字符串中任何位置找到数字并用于比较。
字母排序将数字排在字母之前。 当大小写区分关闭且输入中有以数字开头的行时,数字(0–9,Unicode 48–57)排在大写字母(65+)和小写字母(97+)之前。这是标准 ASCII 顺序。如果您希望数字排在最后,没有内置选项可以实现;需要手动拆分各部分并重新排列。
降序字母排序会颠倒整个列表,包括并列项。 两个相等的行(例如两个空白行)相较于升序排序会以相反的输入顺序出现。这是正常的比较排序行为。
每个面板上方显示的行数包含末尾的空白行。 如果粘贴的文本以换行符结尾,计数可能比预期多显示一行。这是因为 input.split('\n') 将最后一个换行符后的空字符串也计为一行。排序能正确处理此情况;额外的空白行在升序字母模式下排到最前面。
批处理模式将每个批量输入行作为独立的文本块处理。 批量输入的每一行本身就是一个待排序的块。由于每个"块"只是单行,除非每个批量输入行本身是一个多行编码块,否则标准排序类型的批处理模式不会产生有意义的结果。批处理模式对 Duplicate Remover 和 Reverser 工具最为有用。
隐私与安全
Text Sorter 使用 JavaScript 完全在您的浏览器中处理所有文本。不会向任何服务器传输文本。sortLines 函数对您提供的文本同步运行;排序过程中不会发出网络请求。首次加载页面后,该工具可在离线状态下使用。对机密数据排序——内部报告、个人列表、敏感标识符——不存在数据离开设备的风险。
常见问题
Text Sorter 是免费的吗? 是的。六种排序类型、两种顺序方向以及大小写区分选项均免费,无需账户或付款。
它可以离线使用吗? 是的。页面加载后,无需互联网连接即可进行排序。
我的文本会被发送到服务器吗? 不会。所有排序在您的浏览器中运行。您的文本永远不会离开您的设备。
字母排序和自然排序有什么区别? 字母排序使用 Unicode 码点逐个字符进行比较,因此"item10"排在"item2"之前,因为第三个字符处"1"(49)<"2"(50)。自然排序识别嵌入的数字 10 和 2,对其进行数值比较,并正确地将"item2"放在"item10"之前。
"按长度"排序的依据是什么? 按长度按每行的总字符数(含空格)进行排序。在升序模式下,20 个字符的行排在 21 个字符的行之前。
按单词数排序与按长度排序有何不同? 按单词数按每行以空格分隔的令牌数进行排序。含四个长单词的短行可能比含两个短单词的长行排名更高。按长度忽略单词边界,直接计算原始字符数。
该工具能处理行中的制表符或其他空白字符吗? sortLines 函数在换行符(\n)处分割输入。行内的制表符和其他空白字符是该行内容的一部分,会影响基于长度和单词数的排序(以制表符分隔的行根据单词数的计算方式可能拥有更多"单词")。为获得整洁的排序结果,粘贴前请规范化空白字符。
能不使用并排视图直接原地排序吗? 当前界面始终显示并排的输入/输出布局。要用排序后的输出替换您的输入,请复制结果并粘贴回输入面板。输出将立即从新输入重新排序。
排序期间空白行会怎样? 空白行被视为具有零字符的行和空字符串。在升序字母排序中,它们浮至顶部。在降序字母排序中,它们沉至底部。排序器不会删除它们;如果您想折叠多个空白行,请使用 Duplicate Line Remover。
该工具能排序的最大行数是多少? 没有强制最大值。即使数千行,排序速度也很快。非常大的输入——数十万行——可能需要片刻,但大多数实际使用情形都能瞬间完成排序。
相关工具
- Duplicate Line Remover — 在排序前后删除完全重复或近似重复的行,生成一个干净、唯一的列表。
- Word Counter — 在排序前后统计文本中的单词、字符、句子和段落数量。
- Text Reverser — 使用不同于排序的转换方式,反转文本中的字符、单词或行的顺序。
立即试用 Text Sorter:Text Sorter