按字母与自然顺序排序文本行
在浏览器里对文本行排序:按字母顺序、数字顺序(自然排序)或行长度,升序或降序皆可。免费在线行排序工具,100% 纯本地运行。还能去重、反转与清理列表。无需注册,数据不上传。
我们的团队针对字母、自然(数字感知)与长度排序、带 locale 感知的 Intl.Collator 排序、大小写处理、组合去重、CRLF/LF/CR 行拆分以及密码学 Fisher–Yates 随机打乱,验证了这款行排序工具。
对文本行排序是什么意思?
对文本行排序,是指把一段按换行切分的文本、依照某条规则重排这些行——最常见的是字母(词典)顺序,也可以是数字顺序、长度或反转。它是开发者或写作者一天里最频繁的小任务之一:给一列名字排字母序、给 import 语句排序、整理从电子表格复制来的一列标签,或排列配置键以保持 diff 干净。
绊倒大家的微妙之处在于:默认情况下计算机是按字符编码排序字符串的,而不是按人的直觉。朴素排序会把 item10 放在 item2 之前,因为字符 1 的码点比 2 小。它还会把每个大写词推到小写词前面,所以 Zebra 会落在 apple 前。真实世界的列表很少想要这两种行为。本工具默认采用不区分大小写、locale 感知的排序,并提供一个把嵌入数字当作数字比较的「自然」方式——这两项设置让排序贴合人的预期。
排序与清理列表关系密切。你常常想同时排序并去重,或在同一趟里丢掉空行和多余空白。本工具把这些操作折进一个面板:排序、删除重复、修剪、删除空行、反转,甚至随机打乱。若以去重为主任务——并想控制保留首次或末次出现——请使用配套的删除重复行工具,它共用同一套引擎。要统计词数和行数,请用字数统计;要比较列表的两个版本,请用文本对比;要改变行的大小写,请用大小写转换。
一切都完全在你的浏览器里进行、没有上传,所以给一个保密列表排序,就和打开一个文本编辑器一样私密。粘贴、选一个顺序、复制结果——整个往返只需几秒钟。
Input (unsorted): file10.txt file2.txt file1.txt Alphabetical sort (naive): file1.txt file10.txt ← wrong: 10 before 2 file2.txt Natural sort (numeric-aware): file1.txt file2.txt file10.txt ← correct
核心特性
字母、自然与长度排序
三种排序方式覆盖每一种列表:字母词典序、让 item2 保持在 item10 之前(把数字当作数字比较)的自然排序,以及从短到长的按长度排序。每种都可升序或降序。
locale 感知排序
排序使用浏览器的 Intl.Collator,它遵循 Unicode 排序算法。带重音和非英文的字符会按你所用语言的读者预期排序——é 挨着 e,而不是被扔到字母表末尾。
默认不区分大小写
Apple 和 apple 会作为邻居排列,而不会让全大写的词跳到最前——这是人类列表的自然选择。当大写和小写必须区别对待时,打开「区分大小写」即可。
排序 + 去重一趟完成
打开「删除重复行」,一步得到干净、唯一、有序的列表。实时统计标记会精确报告合并了多少重复,让你信得过结果。
实时行数计数
统计标记随键入更新:12 行 → 9 行 · 删除 3 个重复 · 删除 0 个空行。不用猜工具是否真的改动了什么——你会立刻看到前后对比。
反转与随机打乱
「反转」在不重新排序的情况下翻转当前顺序;「随机打乱」用密码学 Fisher–Yates 洗牌随机化各行。一键随机化测验题、决定抽签顺序,或翻转一份更新记录。
清理开关
修剪每行、删除空行、添加行号,让面板功能更完整。把它们和排序组合起来,无需脚本就能把杂乱粘贴的一列变成整齐、可直接发布的输出。
100% 浏览器端隐私
你的文本永远不会离开页面——不上传、不记录、不分析你键入的内容。可安全用于保密列表、内部词表和敏感导出。你可以在 Network 面板自行验证:请求数为零。
文本行排序示例
字母顺序 A→Z
banana apple cherry
apple banana cherry
默认排序:升序、字母顺序、不区分大小写。对一个简单的单词列表按词典序排列——这是给一列名字、标签或关键词排序时最常见的用法。
降序 Z→A
apple banana cherry
cherry banana apple
把顺序设为降序即可反转字母方向。适合排行榜、最新在前的列表,或任何希望字母序末尾项排到最前的排名场景。
自然排序(数字感知)
item10 item2 item1
item1 item2 item10
自然排序会把嵌入的数字当作数字比较,所以 item2 保持在 item10 之前。朴素的字母排序会因为字符 1 排在 2 前而错误地把 item10 放到最前。处理文件名、版本号和带编号的行时不可或缺。
按长度排序
ccc a bb
a bb ccc
「按长度」方式会把行从最短到最长排列,长度相同时再按字母序打破平局。适合发现异常项、对齐定宽数据,或把标签列表从短到长排列。
不区分大小写排序
banana Apple apple
Apple apple banana
在「区分大小写」关闭(默认)时,Apple 和 apple 会作为邻居排列,而不会让全大写的词一律跳到最前。对人类可读的列表来说,这几乎总是你想要的效果。
排序并同时去重
dog cat dog bird cat
bird cat dog
在排序时打开「删除重复行」,一步得到干净、唯一、有序的列表。统计标记会报告 5 行 → 3 行 · 删除 2 个重复,让你能核对被合并掉的内容。
反转当前顺序
line one line two line three
line three line two line one
「反转顺序」会翻转最终列表而不做字母排序——它只是把现有序列颠倒过来。可与排序搭配得到降序结果,也可单独用于反转日志或更新记录。
打乱(随机化)列表
north south east west
east north west south
「随机打乱」使用浏览器的密码学 RNG(Fisher–Yates 算法)随机化行序。非常适合随机化测验题目、决定随机抽签顺序或抽样。每次切换它,输出都不一样。
如何对文本行排序
- 1
粘贴或键入你的文本行
把文本放进输入框。每个换行都被当作单独的一行。排序随键入即时进行——没有提交按钮。末尾的换行会被忽略,不会多出一个空行。
- 2
选择顺序与方式
把「顺序」设为升序(A→Z)或降序(Z→A),再选一种「方式」:单词用字母顺序,带数字的用自然顺序,或按长度。你一改设置,输出就即时更新。
- 3
按需添加清理选项
切换「删除重复行」「修剪每行」或「删除空行」,在排序时顺手整理列表。只在大写和小写必须区别对待时才打开「区分大小写」。
- 4
查看统计标记
标记会显示输入行数、输出行数,以及删除了多少重复或空行。在复制结果前用它确认工具做的和你预期的一致。
- 5
复制排序结果
点击「复制」把排序输出放进剪贴板。用「重置」清空两个框,或用「示例」载入一个供试验的范例列表。整个过程没有任何上传。
常见排序错误
对带编号的项做朴素字母排序
经典错误:对文件名或版本号做字母排序,结果 10 落在 2 前。解法是把方式切到「自然」,它会把嵌入的数字当作数字比较。带编号的列表排序后一定要检查——用错方式看着挺像那么回事,直到你注意到 item10 排在了 item2 上面。
字母排序: release-1 release-10 release-2
自然排序: release-1 release-2 release-10
区分大小写排序打散了人类列表
对一列名字保持「区分大小写」打开,会把每个大写条目推到小写前面,把本该是一段字母序的内容拆成两段。除非大小写有语义意义,否则请关闭它,让 Apple 和 apricot 挨在一起。
区分大小写: Apple Banana apple banana
不区分大小写: Apple apple Banana banana
空白破坏了排序
带尾随空格或制表符的行,与其被修剪过的孪生行排序不同,因为空白是字符串的一部分。如果两个看着相同的行分开了,请打开「修剪每行」在排序前去掉两侧空白。
未修剪("apple " 对 "apple"): apple banana apple ← 尾随空格,排序异常
已修剪: apple apple banana
以为「反转」等于降序排序
「反转顺序」只是把当前序列颠倒——它不排序。如果列表本来没排过,反转给你的是输入的倒序,而不是 Z→A。要降序排序,请把「顺序」设为降序;「反转」只用来翻转一个已经有序的列表。
对未排序输入反转: cat apple banana → banana / apple / cat(只是倒过来)
降序排序: cat banana apple
文本行排序:常见用例
- 给名字、标签与关键词排字母序
- 粘贴从电子表格复制来的一列名字、标签或 SEO 关键词,得到干净的词典序。加上「删除重复行」,可在同一步内合并杂乱导出里的重复。
- 排序 import 语句与配置键
- 给一段 import 行或配置键排序,让它们保持规范顺序、未来的 diff 保持精简。自然排序会让带编号的项(
v1、v2、v10)保持正确次序。 - 排序文件名与版本号
- 文件名和语义化版本是朴素排序败得最惨的地方——
v1.10排在v1.2前。自然排序会修正它,给你一份正确排序的列表,用于发布说明、清单或构建脚本。 - 整理安全词表
- 完全离线地排序并去重密码词表、子域名列表或模糊测试字典。因为没有任何上传,敏感的安全数据绝不会触及第三方服务器。
- 整理 CSV 列
- 从 CSV 里复制出单独一列,排序、去重,再贴回去。对一次性清理来说,这比电子表格公式更快,而实时计数会确认合并掉了多少行。
- 随机化抽签或测验顺序
- 用「随机打乱」为公平抽签随机化名字顺序、为测验随机化题目,或为盲审随机化条目。密码学 RNG 让随机性经得起推敲,而不是可预测的伪洗牌。
- 为干净的 diff 准备数据
- 在比较前用相同方式排序两个列表,能让 diff 反映真实内容变化,而不是顺序噪声。把本工具与文本对比搭配,能精确看出增删了什么。
- 反转日志与更新记录
- 用「反转顺序」翻转一份日志或更新记录,让最新条目排到最前(或最后),而不做字母重排。这是命令行
tac管道的一键替代方案。
排序是如何工作的
- 行拆分(CRLF / LF / CR)
- 输入按
\r\n、\r或\n拆分,因此从 Windows、Unix 或经典 Mac 来源粘贴的文本都能用。会先剥掉单个末尾行终止符,这样最后的换行就不会造出一个多余的空末行。 - Intl.Collator 排序
- 字母与自然排序使用
Intl.Collator(locale, { numeric, sensitivity })。numeric: true启用自然(数字感知)比较;开启「区分大小写」时 sensitivity 为variant,否则为accent(不区分大小写)。排序遵循 Unicode 排序算法。 - 自然排序语义
- 自然排序把连续的数字串当作整数来比较、而非逐字符,所以
a2<a10。它能处理行中任意位置嵌入的数字,这正是文件名和版本号能凭直觉而非词法排序的原因。 - 带平局打破的按长度排序
- 「按长度」方式按字符数升序排列各行,再用排序器打破平局,让等长的行仍落入稳定的字母序。降序会翻转最终方向。
- 确定性的流水线顺序
- 各项操作始终按固定顺序执行:修剪每行 → 删除空行 → 去重 → 排序或随机打乱 → 反转 → 添加行号。无论你如何组合这些开关,这都让输出可预测。
- 密码学随机打乱
- 随机打乱使用由
crypto.getRandomValues播种的 Fisher–Yates 算法,给出均匀、不可预测的排列。它与排序互斥——启用随机打乱会完全绕过排序器。 - 稳定的浏览器内排序
- JavaScript 的
Array.prototype.sort在现代引擎中保证稳定,所以排序器认为相等的行会保持其原始相对顺序。对典型的列表规模,所有计算都在你浏览器的主线程完成,无需 worker 或网络调用。
排序最佳实践
- 任何带数字的内容都用自然排序
- 如果你的行里含有数字——文件名、版本号、发票 ID、编号步骤——请选「自然」方式。字母排序会把
10放在2前面、悄悄打乱次序。自然排序是最重要、最该做对的一项设置,而启用它不花任何代价。 - 人类列表保持不区分大小写
- 对名字、标签和文字列表,保持「区分大小写」关闭,以免大写词跳到小写词前。只对像标识符这类大小写有意义、
ID与id确实不同的数据才打开它。 - diff 之前用相同方式排序两个列表
- 比较两个列表时,先用相同设置各自排序。两个未排序列表的 diff 会被顺序变化主导;两个已排序列表的 diff 只显示真实的增删。把本工具与文本对比搭配,得到最干净的比较。
- 边排序边去重
- 如果列表可能含重复,请在同一趟里启用「删除重复行」,而不是先排序再用肉眼找重复。统计标记会告诉你合并了多少,让你不必怀疑列表是否真的唯一。
- 粘贴数据先修剪再排序
- 从电子表格、PDF 或终端复制的文本常带尾随空格,这会让本该相同的行分开排序或在去重中幸存。打开「修剪每行」在排序前规范空白,让顺序反映内容而非不可见字符。
- 公平很重要时用随机打乱的密码学 RNG
- 对抽签、抽样或任何可预测顺序可能被钻空子的场景,随机打乱的密码学随机性优于凭肉眼或基于
Math.random的工具。想要新的顺序就再切换一次以重新洗牌。
常见问题
这个工具是做什么的?
字母排序和自然排序有什么区别?
file10 会排在 file2 之前——因为字符 1(U+0031)在 2(U+0032)之前。自然排序会识别连续的数字并把它们当作数字比较,因此 file2 会正确地排在 file10 之前。普通单词和代码用字母排序;任何带嵌入数字的内容用自然排序——文件名、版本号(v1.2 对 v1.10)、发票号和带编号的列表项。本工具用 Intl.Collator({ numeric: true }) 实现自然排序,这是每个现代浏览器都内置的、基于标准的 Unicode 排序规则。 如何对一个列表按字母排序?
我的文本会被上传到任何地方吗?
如何正确地对一列数字排序?
100 会排在 2 之前(因为作为字符 1 < 2)。自然排序会比较数值,给出 2、100 的正确顺序。对于像 chapter 2 和 chapter 12 这类混合了文本与数字的行,自然排序也会通过数值比较 2 与 12 而排对。如果你的行是纯数字并且想要严格的数值排序,自然排序能处理整数以及混合字符串中的数字部分;对于小数密集的财务数据,请再核对前导零这类边界情况。 排序会考虑大写和小写吗?
Apple 和 apple 在排序上被视为等价、会作为邻居排列。这是人类可读列表的自然选择:你很少想让所有大写词跳到小写词前面。打开「区分大小写」可得到严格排序,让大写字母排在小写字母之前(在排序器的变体敏感度内遵循 Unicode 码点顺序)。当去重选项启用时,大小写敏感也会影响去重:关闭时,Foo 和 foo 会被算作同一行。 我能同时排序并删除重复吗?
排序时空行会怎样处理?
带重音的字符和非英文字符是怎么排序的?
Intl.Collator 做到 locale 感知,它遵循 Unicode 排序算法。带重音的字母会按你所用语言的读者预期来排序——例如在大多数拉丁语言 locale 中,é 会排在 e 旁边,而不是排到字母表末尾。本工具使用页面语言进行排序,因此德语、法语、西班牙语及其他本地化版本会套用相应规则。这比朴素的码点排序正确得多,后者会把带重音和非 ASCII 的字符散落在意想不到的位置。 能排序的行数有上限吗?
sort 工具会更顺手,但对于日常列表、词表和导出数据,本工具轻松应对。 这和在 Excel 或代码编辑器里排序有什么不同?
「随机打乱」选项做什么?
crypto.getRandomValues)驱动的 Fisher–Yates 洗牌来随机化行序,所以结果真正不可预测且每次都不同。它与排序互斥——你要么给行排序,要么随机化它们。常见用途包括随机化测验或抽认卡顺序、选择公平的抽签序列、抽样,或在人工审阅前给列表去偏。因为它用的是密码学 RNG 而不是 Math.random,所以在你需要经得起推敲的随机性时也适用。 相关工具
查看所有工具 →大小写转换器 — UPPERCASE、lowercase、camelCase 一次搞定
文本处理
在浏览器里把文本一键转成 UPPERCASE、lowercase、Title Case、Sentence case、camelCase、PascalCase、snake_case、kebab-case、CONSTANT_CASE 等共 15 种命名格式。免费、纯本地、无需注册。
Lorem Ipsum 生成器 — 免费占位文本工具
文本处理
即时生成 Lorem Ipsum 占位文本 — 按段落、句子、单词、字节或列表生成。可复制或下载为纯文本、HTML、Markdown 或 JSON。100% 免费、隐私、纯浏览器运行,无需注册。
免费正则表达式测试器 — 在线实时匹配与调试
文本处理
在浏览器里实时测试正则表达式:高亮匹配、捕获组、命名分组、替换预览、字符串切分与逐 token 解释,支持 JavaScript(ECMA-262)方言、g/i/m/s/u/y/d 七个 flag、ReDoS 超时保护。100% 本地运行、免费、无需注册。
在线从文本中删除重复行
文本处理
在线从文本中删除重复行——免费、即时、100% 在你的浏览器里完成。可忽略大小写或空白,保留首次或末次出现,并显示删除了多少重复行。还能排序与清理。无需注册。
URL Slug 生成器 — 一键把任意文本转成 slug
文本处理
在线把任意标题即时转成干净、利于 SEO 的 URL slug。可音译重音字符与西里尔字母,也可保留 Unicode 文字。100% 本地运行,数据不离开浏览器。
在线文本对比与差异工具
文本处理
在浏览器内即时对比两段文本。双栏并排展示、行内单词级高亮、统一 diff 补丁导出,支持忽略大小写、空白与空行。100% 本地浏览器处理,无需上传,文本不离开你的设备。