假设你有以下文本:

abc
123
abc
456
789
abc
abc

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

abc
123
456
789

当前回答

添加到@Marc。2377的答复。

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

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

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

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

什么都不替换。

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

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

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

其他回答

在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”命令之外,我很少使用它,但它似乎做得很好(包括尝试一个宏记录器!)。

如果你不介意一些Vim在你的VS代码。可以安装Vim仿真插件。

然后可以使用vim命令

:sort u

它会对行进行排序,并删除重复的行

实际上不是在Visual Studio Code中,但如果它能工作,它就能工作。

打开一个新的Excel电子表格 将数据粘贴到一个列中 转到数据选项卡 选择数据列(如果还没有) 点击删除重复项(在工具条中间位置) 单击“确定”删除重复项。

这不是最好的答案,正如你指定的Visual Studio Code,但正如我所说:如果它工作,它工作:)

崇高的文本3

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

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

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

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

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

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