当前位置: 首页
编程语言
Sublime Text如何删除重复行_Sublime删除重复行技巧

Sublime Text如何删除重复行_Sublime删除重复行技巧

热心网友 时间:2026-04-30
转载

Sublime Text的Remove Duplicate Lines命令仅删除相邻重复行,因其逐行比对且仅匹配上一行完全相同的行;非相邻重复、空白符或换行符差异均导致失效。

Sublime Text如何删除重复行_Sublime删除重复行技巧

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

这里先说一个核心判断:Sublime Text 自带的 Remove Duplicate Lines 命令,并不能实现真正的全局去重。它只删相邻的重复行;要想彻底清理所有重复项,必须先排序,或者干脆换用正则表达式乃至插件。

为什么 Remove Duplicate Lines 总是漏删?

这个命令的底层逻辑其实很简单:它只会逐行比对,并且只删除和**上一行内容完全相同**的那一行。这就意味着,只要两行内容是重复的,但中间被其他内容隔开了,它就完全识别不出来。

  • 举个例子,如果三行的顺序是 applebananaapple,第二个 apple 是不会被删除的。
  • 更隐蔽的是,任何细微的格式差异,比如空格、制表符、BOM、甚至是换行符的不同(\r\n 对比 \n),都会导致它判定为“不同行”,哪怕肉眼看起来一模一样。
  • 它既不区分大小写,也不会自动忽略行首行尾的空白——所以 hello (末尾带空格)和 hello 会被视为两行不同的内容。

可靠去重三步法:排序 + 正则替换

如果不打算安装插件,那么“排序后正则替换”是兼容性最好、无论文件大小都相对稳妥的方法。关键在于正则表达式的写法和执行节奏:

  • 首先,全选文本(Ctrl+ACmd+A)。
  • 调出命令面板(Ctrl+Shift+P),输入 Sort Lines 并回车,让所有行按字母顺序排列。
  • 接着,打开替换面板(Ctrl+H),务必勾选 Regular Expression(也就是点击那个 .* 图标)。
  • 在查找框填入:^(.*$)\n^\1$,替换框留空。
  • 点击 Replace All。如果提示“0 occurrences found”,说明重复项已清理完毕;否则,可以再点击一次,确保万无一失。

需要留意的是,正则中的 \n 在Windows格式的文件里可能无法匹配 \r\n。保险起见,可以尝试使用 ^((?s:.*))$\s+^$,不过在大多数情况下,原来的表达式就够用了。

想保留原始顺序?别用 Sort Lines,改用插件或 Python 控制台

内置功能无法在去重的同时保留行序,强行排序会打乱原有的数据逻辑,比如日志的时间线或者代码的执行顺序。这时候,有两条更实用的路径:

  • 安装 Find Duplicate Lines 这类插件。安装后,全选文本,打开命令面板输入 Remove All Duplicates,它会自动保留首次出现的行,并删除后续的重复项。
  • 或者,使用 Sublime Text 内置的 Python 控制台(快捷键 Ctrl+`),粘贴并运行以下脚本:
    import sublime, sublime_plugin
    view = sublime.active_window().active_view()
    regions = view.sel()
    if not regions:
        regions = [sublime.Region(0, view.size())]
    for region in regions:
        lines = view.substr(region).splitlines(keepends=True)
        seen = set()
        unique_lines = []
        for line in lines:
            if line not in seen:
                seen.add(line)
                unique_lines.append(line)
        view.replace(sublime.Edit(), region, ''.join(unique_lines))
    这段代码会严格按行字符串进行全局判重,不碰空格、不排序、也不会丢失换行符。

大文件(10 万行以上)或需条件去重时,别在 Sublime 里硬扛

当面对海量文本或需要更复杂的去重条件时,Sublime Text 内置的正则引擎可能会卡顿甚至无响应。而且,它原生不支持“按指定列去重”、“忽略大小写”或“跳过空行”等常见需求。

  • 在终端里,一行命令就能搞定(Linux/macOS):sort -u input.txt > output.txt
  • Windows PowerShell 用户可以用:Get-Content input.txt | Sort-Object -Unique | Set-Content output.txt
  • 如果需要保留原始顺序并进行复杂过滤?直接写个 Python 脚本最省心:python3 -c "import sys; seen=set(); [print(l, end='') for l in sys.stdin if l not in seen and not seen.add(l)]"

最后必须警惕的是:Sublime Text 的任何去重操作都不会自动备份。在处理前,务必通过 File → Sa ve As… 另存一个副本。尤其是使用正则表达式反复点击 Replace All 时,一旦操作失误,很难回退到之前的状态。

来源:https://www.php.cn/faq/2311182.html

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
如何利用Cobbler进行系统更新

如何利用Cobbler进行系统更新

Cobbler系统更新最佳实践与操作指南 首先需要明确一个核心理念:Cobbler的核心功能在于自动化系统部署与初始配置,它并非为在线软件包管理或增量式升级而设计。那么,对于已投入生产运行的操作系统,我们应如何科学地借助Cobbler来完成更新任务呢? 正确的策略是:在Cobbler服务器端,持续维

时间:2026-04-30 22:56
Compton配置里窗口管理如何优化

Compton配置里窗口管理如何优化

Compton 窗口管理优化完全指南:提升性能与流畅度的专业配置方案 一、 核心优化原则 想要显著提升Compton窗口管理器的运行效率与流畅度?掌握以下核心优化原则,能有效避免常见性能瓶颈,实现系统资源的高效利用。 优先启用GPU硬件加速:在X11显示服务器环境下,务必选择glx作为渲染后端,以获

时间:2026-04-30 22:55
如何通过Compton配置提升视频播放效果

如何通过Compton配置提升视频播放效果

Compton配置优化视频播放的实用指南 作用边界与总体思路 首先需要明确一点:Compton 是一款 X11 窗口合成器,其核心职责在于窗口管理,例如实现窗口透明、阴影、淡入淡出等视觉效果,并最终完成画面的合成与输出。它并不直接参与视频解码过程,因此无法提升视频本身的码率或画质清晰度。它对视频播放

时间:2026-04-30 22:55
Notepad++怎么设置自动完成符号对(如括号、引号)

Notepad++怎么设置自动完成符号对(如括号、引号)

Notepad++怎么设置自动完成符号对(如括号、引号) 自动完成符号对功能在哪个设置项里 想给Notepad++配上自动补全括号、引号的功能?很多人的第一反应是去“自动完成(Auto-completion)”选项卡里翻找,结果往往一无所获。其实,这个功能藏得有点深,它的正确路径是 Settings

时间:2026-04-30 22:55
Compton配置时遇到性能瓶颈怎么办

Compton配置时遇到性能瓶颈怎么办

Compton 性能瓶颈定位与优化 一、快速定位瓶颈 当桌面出现卡顿、延迟等性能问题时,首要任务是进行系统性诊断,而非盲目调整参数。遵循科学的排查流程,能高效锁定问题根源。 监控系统资源:首先,通过终端运行 top 或 htop 命令,持续观察 Compton 进程的 CPU 使用率是否异常偏高。同

时间:2026-04-30 22:55
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 日榜
  • 周榜
  • 月榜
热门教程
更多
  • 游戏攻略
  • 安卓教程
  • 苹果教程
  • 电脑教程