sublime如何查找重复行_Sublime删除重复行操作【方法】

2次阅读

sublime的remove duplicate lines仅删除相邻重复行,非全局去重;需先排序再执行,或升级至4.4+用sort lines: unique命令,亦可安装find duplicate lines插件实现智能去重。

sublime如何查找重复行_Sublime删除重复行操作【方法】

Sublime 的 Remove Duplicate Lines 为什么删不干净?

因为 Remove Duplicate Lines 命令只删除**相邻重复行**,不是全局去重。比如三行内容是 applebananaapple,它完全不会动——中间夹了别的行,就“看不见”重复。

  • 这是最常被忽略的前提:不排序,就别指望它能清掉所有重复项
  • 它的底层逻辑就是逐行比对上一行,没做哈希或集合缓存
  • 菜单路径是 Edit → Line → Remove Duplicate Lines,但点之前必须先排序

排序 + 去重两步法(零插件,最稳)

适用于临时处理、不想装插件、或需保留原始大小写/空格细节的场景。关键在正则写法要兼容换行符差异。

  • 全选文本:Ctrl + A
  • 排序:Ctrl + Shift + P → 输入 Sort Lines → 回车
  • 打开替换面板:Ctrl + H,勾选 .*(启用正则)
  • 查找框填:^(.*)(r?n)1(r?n)?;替换框留空
  • Replace All,直到提示 “0 occurrences found”

说明:r?n 同时匹配 windowsrn)、Mac(r)、linuxn)换行; 精确复用第一行全文,不因尾部空格或不可见字符误判。

Sublime 4.4+ 用户直接用 Sort Lines: Unique

如果你用的是 sublime text 4.4 或更新版本,不用正则、不用插件,一条命令就能完成“排序 + 去重”:

  • Ctrl + Shift + P → 输入 Sort Lines: Unique → 回车
  • 该命令默认保留每组重复行中的第一行,其余全删,且自动按字典序排列
  • 若想绑定快捷键(比如 Ctrl + Alt + U),编辑 Preferences → Key Bindings,加这一行:
    [ { "keys": ["ctrl+alt+u"], "command": "sort_lines", "args": {"unique": true} } ]

高频处理推荐插件:Find Duplicate Lines

适合每周都要清洗日志、sql 结果、爬虫输出等几百行以上数据的人。它支持“保留唯一值”而非“删除所有重复行”,也支持忽略空行、忽略大小写等选项。

  • 安装:Ctrl + Shift + PPackage Control: Install Package → 搜 Find Duplicate Lines
  • 使用:Ctrl + A 全选 → Ctrl + Shift + P → 输入 Remove All Duplicates(注意不是 “Consecutive”)
  • 插件会高亮所有重复行,并弹出确认框,可预览再执行,误操作风险更低

真正容易被忽略的点是:所有方法都对不可见字符敏感——比如某行末尾多一个空格、Tab 或零宽空格(U+200B),就会被当作不同行。处理前建议先用 Ctrl + H 查找 s+$ 替换为空,清理尾部空白。

text=ZqhQzanResources