假设你有以下文本:

abc
123
abc
456
789
abc
abc

我想去掉所有的“abc”行,只留下一行。我不介意排序。结果应该是这样的:

abc
123
456
789

当前回答

尝试查找并替换为正则表达式。

发现: ^(.+)((?:\ r \ n。*)*)(?:\ r ? \ n \ 1)美元 替换: 1美元2美元

在第一组中引入一些方差是可能的。

其他回答

安装DupChecker扩展,点击F1,并键入“检查副本”。

它将检查副本并询问您是否要删除它们。

添加到@Marc。2377的答复。

如果顺序很重要,并且您不关心只保留最后的重复行,如果您只想删除重复的非空行,则只需搜索下面的regexp

^(.+)\n(?=(?:.*\n)*?\1$)

如果还想删除重复的空行,请使用*而不是+

^(.*)\n(?=(?:.*\n)*?\1$)

什么都不替换。

这将取一行,并试图找到前面更多(可能是0)行,后面跟着完全相同的行。它将删除所取的线。

这只是一个一次性的正则表达式。不需要垃圾邮件替换按钮。

现在还考虑了@awk的注释,其中最后一行必须有换行符才能被识别为重复。现在,通过从搜索行中排除\n并在找到的行中添加$,情况就不再是这样了。

尝试查找并替换为正则表达式。

发现: ^(.+)((?:\ r \ n。*)*)(?:\ r ? \ n \ 1)美元 替换: 1美元2美元

在第一组中引入一些方差是可能的。

在vscode v1.62中,有一个命令用于消除选择中的重复行:

删除命令面板中的重复行

or

removeduplicatelines作为键绑定中的命令

(该命令没有默认的按键绑定)


这是一个非常有趣的扩展:Transformer

特点:

作为新文档的唯一行 独特的线条


Align CSV Align To Cursor Compact CSV Copy To New Document Count Duplicate Lines As New Document Encode / Decode Filter Lines As New Document Filter Lines Join Lines JSON String As Text Lines As JSON String Array Normalize Diacritical Marks Randomize Lines Randomize Selections Reverse Lines Reverse Selections Rotate Backward Selections Rotate Forward Selections Select Highlights Select Lines Selection As JSON String Sort Lines By Length Sort Lines Sort Selections Split Lines After Split Lines Before Split Lines Trim Lines Trim Selections

独特的线条 从文档中删除重复的行 如果没有选择,则当前块 作为新文档的唯一行 在新文档中打开的惟一行的操作是选择或 如果没有选择,则当前块

除了“Unique Lines”命令之外,我很少使用它,但它似乎做得很好(包括尝试一个宏记录器!)。

崇高的文本3

它具有非常快的原生排列函数。

编辑> Permute Lines > Unique或⌘U,和 编辑>排列选择>唯一

Visual Studio Code是我的日常驱动程序。但是,我保持崇高的文本在这些情况下待命。