详细讲解Sublime文本清洗之多行去重过滤(超级好使)

夏强君_9445

夏强君_9445

2026-06-17

715人浏览

原创

sublime text原生无保序全局去重功能,remove duplicate lines仅删相邻重复行;保序去重需用正则^(.*$) (?=.*^\1$)并统一换行符、清理空格,大文件建议用filter lines插件或系统命令。

详细讲解sublime文本清洗之多行去重过滤(超级好使)

Sublime Text 没有“超级好使”的一键去重功能——所谓好用,全看你怎么选路、怎么预处理、怎么避坑。 它的原生命令要么只删相邻重复(Remove Duplicate Lines),要么必须排序打乱顺序(Sort Lines: Unique)。真要保序、全局、稳定去重,得靠正则或插件,而且每一步都容易卡在换行符、空格、大小写这些细节上。

为什么 Remove Duplicate Lines 总是不生效

这个命令不是扫描全文找重复,它只做一件事:读当前行,和上一行比字节是否完全一致。只要中间隔了一行,哪怕内容一模一样,它就当没看见。

  • 三行内容为 apple → banana → apple,第二个 apple 不会被删
  • apple 和 apple (末尾多一个空格)判为两行
  • 文件混用 (Windows)和 (Unix),哪怕内容相同也匹配失败
  • 光标没全选中目标区域,它只处理你选中的那几行,不是全文
  • 它不忽略大小写,也不支持按子串或列匹配——只认整行字节级相等

保序去重只能靠 ^(.*$) (?=.*^$) 正则

这是 Sublime 原生唯一能保留原始顺序、且只删后续重复项(首行自动跳过)的方案,但必须严格满足前提条件,否则高亮错位、漏匹配、甚至卡死。

SkillHub
SkillHub

SkillHub是一款AI智能体工具,腾讯云专为中国用户推出的 Skill 极速安装工具。

下载
  • 先统一换行符:File → Line Endings → Unix,否则 ^ 和 $ 在 下会错位
  • 打开查找面板(Ctrl+F),勾选 Regular Expression 和 Whole Line
  • 右下角点 .* 按钮启用 . matches newline
  • 输入 ^(.*$) (?=.*^$),点 Find All——所有非首次出现的重复行会被高亮
  • 按 Ctrl+Shift+L 转为多光标,再按 Delete 删除
  • 仍有残留?说明存在行尾空格干扰,先用 [ ]+$ 替换为空,再跑正则

大文件(>5 万行)别硬扛 Sublime 正则

超过这个量级,Sublime 的正则引擎响应变慢、内存飙升、甚至匹配漏行。这不是你正则写错了,是它的底层限制。

  • 实测 10 万行日志,^(.*$) (?=.*^$) 可能卡顿数秒,且零宽字符(u200B)、BOM、混合编码都会导致匹配失败
  • 更稳的做法是甩给系统命令:Linux/macOS 终端执行 awk '{print NR, $0}' file.txt | sort -k2 -k1n | uniq -f1 -D | cut -d' ' -f2-,输出带行号的重复行
  • 如果必须在编辑器内完成,装 Filter Lines 插件更可靠——它底层用 Python set() 实现,对空格、大小写、换行符的容错性远高于原生正则
  • 插件安装后,全选文本 → Ctrl+Shift+P → 输入 Filter Lines: Duplicates,直接提取所有重复行;再执行 Filter Lines: Unique 得到干净结果

真正容易被忽略的,不是正则怎么写,而是换行符统一和空格清理这两步——90% 的“正则不生效”问题,都卡在这两个前置动作上。别急着点 Find All,先看一眼右下角显示的是 Unix (LF) 还是 Windows (CRLF),再扫一眼行尾有没有看不见的空格。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

sublime

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

20

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

0

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

20

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

0

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

20

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

0

15

Golangci-lint安装与入门教程
Golangci-lint安装与入门教程

本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。

2026.10.22

0

15

PHP2Shell高危漏洞修复教程
PHP2Shell高危漏洞修复教程

PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。

2026.10.22

80

12

剧云人物设定与关系管理教程
剧云人物设定与关系管理教程

本专题介绍剧云人物设定与关系管理,讲解角色小传、性格职业、人物目标、背景资料和关系网络的创建及维护方法。

2026.10.22

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程