假设你有以下文本:
abc
123
abc
456
789
abc
abc
我想去掉所有的“abc”行,只留下一行。我不介意排序。结果应该是这样的:
abc
123
456
789
假设你有以下文本:
abc
123
abc
456
789
abc
abc
我想去掉所有的“abc”行,只留下一行。我不介意排序。结果应该是这样的:
abc
123
456
789
我只是有同样的问题,并找到Visual Studio代码包“排序行”。详见Visual Studio Code市场(例如,排序行)。
这个包有选项“排序行(唯一)”,这为我做了。注意行首和行尾的空白。它们影响行是否被认为是唯一的。
如果行序不重要
按字母顺序排序行,如果它们还不是,并执行以下步骤: (基于这个相关的问题:如何使用正则表达式从文件中找到并删除重复的行?)
控制+ F 切换“替换模式” 切换“使用正则表达式”(带有。*符号的图标) 在搜索字段中,输入^(.*)(\n\1)+$ 在“replace with”字段中,输入$1 单击(“全部替换”)。
如果行序很重要,你就不能排序
在这种情况下,要么求助于VS Code之外的解决方案(见这里),或者——如果你的文档不是很大,你不介意弹出替换所有按钮——遵循前面的步骤,但在步骤4和5中,输入这些: (基于不排序删除特定重复行)
警告:有太多行(1000+)的文件块;可能会导致VS Code崩溃;在某些情况下可能引入空行。
搜索:((^[^ \]新元* ? (? = \ S )(?:.*)+$)[\ S \] * ?) ^ \ 2美元(?:\ n) ? 替换为:$1
然后点击“全部替换”按钮,重复出现多少次就点击多少次。
当您单击按钮时,行数停止减少时,您就知道已经足够了。导航到文档的最后一行来关注它。
尝试查找并替换为正则表达式。
发现: ^(.+)((?:\ 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”命令之外,我很少使用它,但它似乎做得很好(包括尝试一个宏记录器!)。
添加到@Marc。2377的答复。
如果顺序很重要,并且您不关心只保留最后的重复行,如果您只想删除重复的非空行,则只需搜索下面的regexp
^(.+)\n(?=(?:.*\n)*?\1$)
如果还想删除重复的空行,请使用*而不是+
^(.*)\n(?=(?:.*\n)*?\1$)
什么都不替换。
这将取一行,并试图找到前面更多(可能是0)行,后面跟着完全相同的行。它将删除所取的线。
这只是一个一次性的正则表达式。不需要垃圾邮件替换按钮。
现在还考虑了@awk的注释,其中最后一行必须有换行符才能被识别为重复。现在,通过从搜索行中排除\n并在找到的行中添加$,情况就不再是这样了。
实际上不是在Visual Studio Code中,但如果它能工作,它就能工作。
打开一个新的Excel电子表格 将数据粘贴到一个列中 转到数据选项卡 选择数据列(如果还没有) 点击删除重复项(在工具条中间位置) 单击“确定”删除重复项。
这不是最好的答案,正如你指定的Visual Studio Code,但正如我所说:如果它工作,它工作:)
崇高的文本3
它具有非常快的原生排列函数。
编辑> Permute Lines > Unique或⌘U,和 编辑>排列选择>唯一
Visual Studio Code是我的日常驱动程序。但是,我保持崇高的文本在这些情况下待命。