删除文本文件中重复行的8种方法 (文本去重方法汇总)
正文
纯文本是很常见的在计算机上储存数据的方式。创建文本文件不仅非常简单,而且编辑起来也非常容易,因为可以使用像Windows记事本之类的工具完成。
文本文件也是一种通用格式,这意味着它可以在多种平台上读取,包括 Windows、Mac、Linux、手机、平板电脑,以及几乎所有介于两者之间的平台。
如果你平时需要将多个文本进行合并,那么文本去重则是一个很常见的需求。
你可以自己手动删除所有重复项,但显然自动化去除会更轻松一些。
在这里,我们向你展示了许多不同的方法,您可以通过这些方法从文本文件中删除重复的行。
使用第三方实用程序删除重复行
从文本文件中删除重复行的一种简单而常用的方法是使用专用的第三方实用程序。
1. TextCrawler 免费
TextCrawler 是一个非常强大的免费软件程序,主要用于搜索和替换文本文件中的数据。
尽管功能强大,TextCrawler 相对易于使用,并且删除重复行选项实际上位于一个单独的窗口中,称为 Scratchpad。
安装(或使用 7-Zip 解压缩安装程序以使其可移植)并启动 TextCrawler。转到“工具”菜单 >“便笺簿”或按 F2。
将文本粘贴到窗口中,然后按Do按钮。默认情况下,应该已经在下拉列表中选择了删除重复行选项。
如果没有,请先选择它。按保存创建一个新的文本文件或将文本复制并粘贴回文本编辑器。
下拉菜单还有其他选项可以删除空格并按升序或降序对文本进行排序。
重复的行还需要匹配大小写以及要删除的内容。
2. 重复行去除器
Duplicate Lines Remover 来自安全公司 NoVirusThanks,出于某种原因,该程序已经被他们从网站上删除了,但幸运的是官方下载链接仍然可用。
要删除重复行,浏览文件或将文件拖放到窗口中,单击检查,如果发现重复行,单击修复并选择一个保存名称。
您还可以使用“文件扫描”选项卡一次批量处理多个文件,包括子文件夹中的文件。
请注意,它会自动创建 .bak 备份并用处理过的文件替换原始文件。使用掩码框并添加文件扩展名以停止处理所有内容。
软件包中还为脚本和更高级的用户提供了专用的命令行版本。
3. TextMechanic离线版
软件名中的“离线”是为了将此工具与在线 TextMechanic 服务区分开来,因为两者不相关。该工具是一个可移植的可执行文件,托管在SourceForge网站上。
除了删除重复和空行,TextMechanic Offline 还可以删除包含特定文本的行或查找和替换文本。Windows 10 用户需要 .NET Framework 3.5。
在按Remove Duplicate Lines之前,将要处理的文本粘贴到 TextMechanic 窗口中。
然后也按删除空行,否则文本将包含已删除重复项的空行。最后,按保存到剪贴板, 以便将更正后的文本粘贴回文本编辑器。
此工具区分大小写,因此如果要删除行,则它们的大小写和内容都必须相同。
4. RemoveDup(由Raymond.cc修改)
该软件是开源且可移植的。您所要做的就是运行它并浏览文本文件,然后按继续。剥离的文件将输出到指定位置,并在文件名后附加“_NoDuplicates”。
该过程区分大小写,因此一行“raymondcc”不会与“Raymondcc”重复。由于 RemoveDup 是开源的,我们对原始程序进行了一些更新和改进。
它现在使用 .NET Framework 4,这意味着 Windows 10 用户不需要单独安装 .NET 3.5。输入框现在具有拖放支持,因此您无需手动浏览即可将文本文件拖放到输入框上。
最后,我们添加了一个复选框,使进程可以选择忽略大小写,因此“raymondcc”将是“Raymondcc”的副本。
请将有关修改版本的任何问题/反馈发送到本文的评论部分。修改后的源包含在存档中。
该软件依赖 .NET Framework 4框架,这意味着Windows 10用户不需要单独安装.NET 3.5。
输入框支持拖放,因此你无需手动浏览即可将文本文件拖放到输入框上。
最后,我们添加了一个复选框,使进程可以选择忽略大小写,因此“raymondcc”将是“Raymondcc”的副本。
5.Notepad++
Notepad++ 是一个功能丰富且流行的文本编辑器,它从来没有集成过删除重复行的功能。
需要一个名为 TextFX 的额外插件。但是,在最近的版本中,从文本文件中删除重复行的功能现在直接内置到程序中。
您所要做的就是单击“编辑”菜单并转到“文件操作”。有两种选择;删除重复行和删除连续重复行。第一个是不言自明的,它只是从文本中删除所有完全重复的行。
第二个选项仅删除在下一行有重复项的行,而两个重复项之间的不同行将被忽略。
Notepad++ 重复行菜单功能区分大小写。您还可以使用搜索和替换 (Ctrl+H) 运行忽略大小写的简单删除操作。
将不带引号的“(?si)^(.+?\R)(?=(?:.+\R)?\1)”粘贴到“Find what:”框中,确保“Replace with:”为空,选择正则表达式搜索模式,然后按“全部替换”。
保留文件中每个重复行的最后一次出现。
使用Windows 命令删除重复行
混合使用内置的 Windows 命令,可以从文本文件中删除重复的行。
6.使用批处理脚本
将这些命令放在一个批处理脚本中,可以快速轻松地进行处理。如果您的计算机对运行第三方软件有任何限制,这也很有用。
一个 BAT 文件区分大小写,除非它们的大小写也相同,否则不会改变行,另一个脚本不区分大小写。
要删除重复的行,请将文本文件拖放到 .BAT 文件中,它会自动处理并输出带有 _deduped 后缀的同一文件夹中的文件。
这些行不会重新排序,而是原地删除,如果您想保持与原始行顺序相同的行顺序,这是理想的选择。
使用在线服务删除重复行
有许多在线服务可以完成从文本中删除重复行的工作,我们选择了一些应该满足您需求的服务。
7. PineTools 在线删除重复行
PineTools 是我们最喜欢的网站,因为它拥有大量用于各种任务的在线工具。
网址:https://pinetools.com/remove-duplicate-lines
它们的范围从颜色选择器、日期/时间工具和(随机)数字生成器到图像编辑器、编程语法荧光笔和数学计算器。有近20种文本和列表工具,其中去除重复行就是其中之一。
只需将文本粘贴到原始文本框中,按REMOVE,过滤后的文本就会出现在无重复行框中。
按“全选”并将其复制回文本编辑器。有忽略大小写、转换为大写/小写、忽略/删除空行以及按字母顺序对输出进行排序的选项。
更改选项后再次按删除以查看结果。
8.文本机器
不要将此网站与 TextMechanic Offline 工具混淆,因为两者是不同人的独立产品。
TextMechanic 有许多不同的基于在线文本的操作工具。
除了只删除重复的行,如果您想同时使用所有其他工具,请使用多合一文本操作记事本 。
网址:http://textmechanic.com/text-tools/basic-text-tools/remove-duplicate-lines/
有两种方法可以让你的文本进入窗口;使用加载文件按钮浏览文本文件或按蓝色 C 按钮清除窗口中的当前文本并粘贴您自己的文本。
然后单击删除重复行按钮。如果您的文本需要,“区分大小写”和“删除空行”复选框可用。已删除显示在单独的框中显示已删除的行。
完成后,单击另存为按钮或按 S 选择所有文本,右键单击并复制它 (Ctrl+C),准备粘贴到文本编辑器中。
软件可以在右侧打包下载:
原文地址:https://www.raymond.cc/blog/remove-duplicate-lines-with-textcrawler-scratchpad-or-notepad 翻译过程中有改动。