如何在文本编辑器中按数值对维基百科格式的长表格排序?
如何在文本编辑器中按数值对维基百科格式的长表格排序?
兄弟,3474行手动排序真的要命,我给你几个靠谱的本地解决方案,不用折腾外链,亲测好用:
方法一:用Notepad++插件快速搞定
Notepad++其实能解决这个问题,只是需要点小操作,步骤如下:
- 先清理分隔行:你表格里的
|-是分隔行,排序的时候不需要,先批量删掉。打开Notepad++的查找替换(Ctrl+H),选择「正则表达式」模式,查找内容填^|-,替换为空,点击「全部替换」。 - 统一分隔符:把表格里的
||替换成制表符(\t),这样方便按列排序。同样在查找替换里,查找\|\|,替换为\t,全部替换。 - 按数值列排序:确保你安装了
TextFX Characters插件(没装的话去「插件管理器」里搜索安装)。选中所有表格行(就是那些以|开头的行),点击顶部菜单「TextFX」→「TextFX Tools」→「Sort lines numerically by column」,选择数值所在的列(看你的示例,数值是替换后的第二列,选对应序号就行)。这里一定要选numerical排序,不然会按字符串顺序排(比如100会排在2前面)。 - 恢复表格格式:把制表符替换回
||,然后在每两行之间插入|-分隔行(可以用查找替换:查找^(\|.*)$,替换为$1\n|-,正则模式,全部替换,最后删掉末尾多余的|-就行)。
方法二:用Excel/Google Sheets可视化排序(适合新手)
如果对插件操作头大,用表格软件更直观:
- 复制有效行:把所有表格数据行(去掉
|-)复制到Excel或Google Sheets里。 - 拆分列:用「数据」→「分列」功能,分隔符选
||,把每行拆成独立的列,这样数值列就单独出来了。 - 按数值排序:选中数值列,点击「排序」,选择「按数值升序/降序」,整个表格会跟着排序。
- 恢复维基格式:把每一行的列用
||连接起来(可以用公式=TEXTJOIN("||", TRUE, A1:Z1)),然后复制回文本编辑器,插入|-分隔行即可。
方法三:用Python脚本一键处理(高效党首选)
如果你懂点Python,写个几行的脚本就能秒搞定,不用手动点来点去:
# 读取你的表格文件(把文件路径改成你自己的) with open("your_table.txt", "r", encoding="utf-8") as f: lines = [line.strip() for line in f.readlines()] # 过滤掉分隔行,只保留表格数据 table_rows = [line for line in lines if line != "|-"] # 定义排序规则:提取第二个数值列,转成整数排序 def sort_key(line): parts = [p.strip() for p in line.split("||")] # 处理可能的非数字情况,把非数字行放到最后 return int(parts[1]) if parts[1].isdigit() else float('inf') # 按数值排序 sorted_rows = sorted(table_rows, key=sort_key) # 重新构建带分隔行的表格 final_table = [] for row in sorted_rows: final_table.append(row) final_table.append("|-") # 移除最后多余的分隔行 if final_table: final_table.pop() # 保存排序后的文件 with open("sorted_table.txt", "w", encoding="utf-8") as f: f.write("\n".join(final_table))
把你的表格内容存成your_table.txt,运行脚本就能得到排序好的sorted_table.txt,直接用就行。
备注:内容来源于stack exchange,提问作者SoWhAt249




