You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在文本编辑器中按数值对维基百科格式的长表格排序?

如何在文本编辑器中按数值对维基百科格式的长表格排序?

兄弟,3474行手动排序真的要命,我给你几个靠谱的本地解决方案,不用折腾外链,亲测好用:

方法一:用Notepad++插件快速搞定

Notepad++其实能解决这个问题,只是需要点小操作,步骤如下:

  1. 先清理分隔行:你表格里的|-是分隔行,排序的时候不需要,先批量删掉。打开Notepad++的查找替换(Ctrl+H),选择「正则表达式」模式,查找内容填^|-,替换为空,点击「全部替换」。
  2. 统一分隔符:把表格里的||替换成制表符(\t),这样方便按列排序。同样在查找替换里,查找\|\|,替换为\t,全部替换。
  3. 按数值列排序:确保你安装了TextFX Characters插件(没装的话去「插件管理器」里搜索安装)。选中所有表格行(就是那些以|开头的行),点击顶部菜单「TextFX」→「TextFX Tools」→「Sort lines numerically by column」,选择数值所在的列(看你的示例,数值是替换后的第二列,选对应序号就行)。这里一定要选numerical排序,不然会按字符串顺序排(比如100会排在2前面)。
  4. 恢复表格格式:把制表符替换回||,然后在每两行之间插入|-分隔行(可以用查找替换:查找^(\|.*)$,替换为$1\n|-,正则模式,全部替换,最后删掉末尾多余的|-就行)。

方法二:用Excel/Google Sheets可视化排序(适合新手)

如果对插件操作头大,用表格软件更直观:

  1. 复制有效行:把所有表格数据行(去掉|-)复制到Excel或Google Sheets里。
  2. 拆分列:用「数据」→「分列」功能,分隔符选||,把每行拆成独立的列,这样数值列就单独出来了。
  3. 按数值排序:选中数值列,点击「排序」,选择「按数值升序/降序」,整个表格会跟着排序。
  4. 恢复维基格式:把每一行的列用||连接起来(可以用公式=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

火山引擎 最新活动