首页 游戏 软件 资讯 排行榜 专题
首页
编程语言
Sublime Text如何删除重复行_Sublime删除重复行技巧

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

热心网友
58
转载
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。

相关攻略

Sublime Text如何使用LSP-pyright配置Python_Sublime LSP-pyright配置Python教程
编程语言
Sublime Text如何使用LSP-pyright配置Python_Sublime LSP-pyright配置Python教程

Pyright 在 Sublime Text 中需手动配置可执行路径才能正常工作:必须通过 npm 全局安装 pyright,用 which where 获取绝对路径填入 LSP-pyright 的 command 数组,并正确设置 pythonPath 指向虚拟环境解释器,同时禁用 Anacond

热心网友
04.30
Sublime Text如何删除重复行_Sublime删除重复行技巧
编程语言
Sublime Text如何删除重复行_Sublime删除重复行技巧

Sublime Text的Remove Duplicate Lines命令仅删除相邻重复行,因其逐行比对且仅匹配上一行完全相同的行;非相邻重复、空白符或换行符差异均导致失效。 这里先说一个核心判断:Sublime Text 自带的 Remove Duplicate Lines 命令,并不能实现真正的

热心网友
04.30
Sublime Text配置TypeScript语法高亮与语法检查
编程语言
Sublime Text配置TypeScript语法高亮与语法检查

Sublime Text配置TypeScript语法高亮与语法检查 为什么 ts文件打开还是纯文本? 问题可能比你想象的更基础:这通常不是因为插件失效,而是Sublime Text压根就没把 ts文件识别为TypeScript代码。默认情况下,编辑器对这个后缀“一脸茫然”,只能将其回退到Plain

热心网友
04.30
Sublime如何连接远程服务器?Sublime使用SFTP插件同步代码教程
编程语言
Sublime如何连接远程服务器?Sublime使用SFTP插件同步代码教程

Sublime如何连接远程服务器?Sublime使用SFTP插件同步代码教程 开门见山地说,Sublime Text本身并不具备远程连接功能,想实现这个需求,必须依赖SFTP插件。但这里有个常见的误区:安装插件不等于万事大吉。实际上,超过九成的连接失败案例,问题都出在项目绑定、配置路径或SSH认证这

热心网友
04.30
Sublime如何实现自动保存?避免数据丢失的实时保存设置
编程语言
Sublime如何实现自动保存?避免数据丢失的实时保存设置

Sublime Text 唯一可靠的原生自动保存是 sa ve_on_focus_lost: true,仅在窗口失焦时保存已修改可写文件;禁用无效的 auto_sa ve 类字段,需用 AutoSa ve 插件实现空闲自动保存。 先说一个核心事实:Sublime Text 并没有所谓的“实时保存”功

热心网友
04.30

最新APP

宝宝过生日
宝宝过生日
应用辅助 04-07
台球世界
台球世界
体育竞技 04-07
解绳子
解绳子
休闲益智 04-07
骑兵冲突
骑兵冲突
棋牌策略 04-07
三国真龙传
三国真龙传
角色扮演 04-07

热门推荐

TON交易费接近零,定价模式如何改变链上经济?
web3.0
TON交易费接近零,定价模式如何改变链上经济?

TON网络最近实施了一次重要的升级,交易费用大幅下降,总体费用降低至近乎零的水平,同时引入了不受网络拥堵影响的固定定价机制。 最近,TON网络完成了一次关键升级,效果立竿见影:交易费用被大幅削减,整体成本降至近乎忽略不计的水平。更重要的是,它引入了一套不受网络拥堵影响的固定定价机制。这一变革带来的不

热心网友
04.30
怪物猎人物语3泡狐龙蛋怎么获取
游戏攻略
怪物猎人物语3泡狐龙蛋怎么获取

在怪物猎人物语3中,泡狐龙蛋是玩家们十分渴望得到的珍贵物品。以下为大家详细介绍获取泡狐龙蛋的方法。 探索特定区域 想找到泡狐龙蛋,首先得去对地方。游戏里有些区域的“出货率”明显更高,比如生态丰富的水没林,那里可是泡狐龙时常出没的“老巢”。 不过,光知道区域还不够,关键在于“仔细”二字。你需要像个真正

热心网友
04.30
重返未来1999狂想可燃点队伍怎么搭配
游戏攻略
重返未来1999狂想可燃点队伍怎么搭配

在重返未来1999中,狂想可燃点是一个极具挑战性但又充满乐趣的玩法。合理的队伍搭配能够让玩家在这个玩法中更加得心应手,下面就为大家推荐几套实用的狂想可燃点队伍。 控制爆发流 核心角色:星锑、红弩箭、十四行诗 这套阵容的思路非常清晰:以控制创造机会,用爆发终结战斗。星锑的核心优势在于其强大的单体爆发技

热心网友
04.30
魔法缔约,缔结 《蛋仔派对》×《精灵梦叶罗丽》联动上线
游戏攻略
魔法缔约,缔结 《蛋仔派对》×《精灵梦叶罗丽》联动上线

花蕾绽爱意,冰晶映柔情!国民原创乐园游戏《蛋仔派对》×《精灵梦叶罗丽》联动重磅上线 次元壁,又一次被魔法打破了。4月30日,国民原创乐园游戏《蛋仔派对》与经典动画《精灵梦叶罗丽》的联动正式开启。罗丽公主与冰公主携手降临蛋仔岛,仙光流转指尖,一场关于缔结魔法契约的奇妙邂逅,正等着你。 双生公主,诠释魔

热心网友
04.30
牧场物语风之繁华集市农作物特点是什么
游戏攻略
牧场物语风之繁华集市农作物特点是什么

牧场物语风之繁华集市:核心农作物种植指南 想在集市上站稳脚跟,选对作物是关键。今天,我们就来聊聊游戏中几种基础又重要的农作物,看看它们各自有什么特点,以及如何为你的牧场和集市生意添砖加瓦。 小麦 先说小麦,这可是基础中的基础。它的优势非常明显:生长周期短,从播种到收获,十来天就能搞定。这意味着资金回

热心网友
04.30