按字母与自然顺序排序文本行
在浏览器里对文本行排序:按字母顺序、数字顺序(自然排序)或行长度,升序或降序皆可。免费在线行排序工具,100% 纯本地运行。还能去重、反转与清理列表。无需注册,数据不上传。
对文本行排序是什么意思?
对文本行排序,是指把一段按换行切分的文本、依照某条规则重排这些行——最常见的是字母(词典)顺序,也可以是数字顺序、长度或反转。它是开发者或写作者一天里最频繁的小任务之一:给一列名字排字母序、给 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` 的工具。想要新的顺序就再切换一次以重新洗牌。
常见问题
这个工具是做什么的?
字母排序和自然排序有什么区别?
如何对一个列表按字母排序?
我的文本会被上传到任何地方吗?
如何正确地对一列数字排序?
排序会考虑大写和小写吗?
我能同时排序并删除重复吗?
排序时空行会怎样处理?
带重音的字符和非英文字符是怎么排序的?
能排序的行数有上限吗?
这和在 Excel 或代码编辑器里排序有什么不同?
「随机打乱」选项做什么?
相关工具
查看所有工具 →大小写转换器 — 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% 本地浏览器处理,无需上传,文本不离开你的设备。