刪除文本文件中重復(fù)行的8種方法 (文本去重方法匯總)

正文

純文本是很常見(jiàn)的在計(jì)算機(jī)上儲(chǔ)存數(shù)據(jù)的方式。創(chuàng)建文本文件不僅非常簡(jiǎn)單,而且編輯起來(lái)也非常容易,因?yàn)榭梢允褂孟馱indows記事本之類的工具完成。

文本文件也是一種通用格式,這意味著它可以在多種平臺(tái)上讀取,包括 Windows、Mac、Linux、手機(jī)、平板電腦,以及幾乎所有介于兩者之間的平臺(tái)。

如果你平時(shí)需要將多個(gè)文本進(jìn)行合并,那么文本去重則是一個(gè)很常見(jiàn)的需求。

你可以自己手動(dòng)刪除所有重復(fù)項(xiàng),但顯然自動(dòng)化去除會(huì)更輕松一些。

在這里,我們向你展示了許多不同的方法,您可以通過(guò)這些方法從文本文件中刪除重復(fù)的行。

使用第三方實(shí)用程序刪除重復(fù)行

從文本文件中刪除重復(fù)行的一種簡(jiǎn)單而常用的方法是使用專用的第三方實(shí)用程序。

1. TextCrawler 免費(fèi)

TextCrawler 是一個(gè)非常強(qiáng)大的免費(fèi)軟件程序,主要用于搜索和替換文本文件中的數(shù)據(jù)。
盡管功能強(qiáng)大,TextCrawler 相對(duì)易于使用,并且刪除重復(fù)行選項(xiàng)實(shí)際上位于一個(gè)單獨(dú)的窗口中,稱為 Scratchpad。
安裝(或使用 7-Zip 解壓縮安裝程序以使其可移植)并啟動(dòng) TextCrawler。轉(zhuǎn)到“工具”菜單 >“便箋簿”或按 F2。

刪除文本文件中重復(fù)行的8種方法 (文本去重方法匯總)

將文本粘貼到窗口中,然后按Do按鈕。默認(rèn)情況下,應(yīng)該已經(jīng)在下拉列表中選擇了刪除重復(fù)行選項(xiàng)。
如果沒(méi)有,請(qǐng)先選擇它。按保存創(chuàng)建一個(gè)新的文本文件或?qū)⑽谋緩?fù)制并粘貼回文本編輯器。
下拉菜單還有其他選項(xiàng)可以刪除空格并按升序或降序?qū)ξ谋具M(jìn)行排序。
重復(fù)的行還需要匹配大小寫(xiě)以及要?jiǎng)h除的內(nèi)容。

2. 重復(fù)行去除器

Duplicate Lines Remover 來(lái)自安全公司 NoVirusThanks,出于某種原因,該程序已經(jīng)被他們從網(wǎng)站上刪除了,但幸運(yùn)的是官方下載鏈接仍然可用。

刪除文本文件中重復(fù)行的8種方法 (文本去重方法匯總)

要?jiǎng)h除重復(fù)行,瀏覽文件或?qū)⑽募戏诺酱翱谥?,單擊檢查,如果發(fā)現(xiàn)重復(fù)行,單擊修復(fù)并選擇一個(gè)保存名稱。
您還可以使用“文件掃描”選項(xiàng)卡一次批量處理多個(gè)文件,包括子文件夾中的文件。
請(qǐng)注意,它會(huì)自動(dòng)創(chuàng)建 .bak 備份并用處理過(guò)的文件替換原始文件。使用掩碼框并添加文件擴(kuò)展名以停止處理所有內(nèi)容。
軟件包中還為腳本和更高級(jí)的用戶提供了專用的命令行版本。

3. TextMechanic離線版

軟件名中的“離線”是為了將此工具與在線 TextMechanic 服務(wù)區(qū)分開(kāi)來(lái),因?yàn)閮烧卟幌嚓P(guān)。該工具是一個(gè)可移植的可執(zhí)行文件,托管在SourceForge網(wǎng)站上。
除了刪除重復(fù)和空行,TextMechanic Offline 還可以刪除包含特定文本的行或查找和替換文本。Windows 10 用戶需要 .NET Framework 3.5。

刪除文本文件中重復(fù)行的8種方法 (文本去重方法匯總)

在按Remove Duplicate Lines之前,將要處理的文本粘貼到 TextMechanic 窗口中。
然后也按刪除空行,否則文本將包含已刪除重復(fù)項(xiàng)的空行。最后,按保存到剪貼板, 以便將更正后的文本粘貼回文本編輯器。
此工具區(qū)分大小寫(xiě),因此如果要?jiǎng)h除行,則它們的大小寫(xiě)和內(nèi)容都必須相同。

4. RemoveDup(由Raymond.cc修改)

該軟件是開(kāi)源且可移植的。您所要做的就是運(yùn)行它并瀏覽文本文件,然后按繼續(xù)。剝離的文件將輸出到指定位置,并在文件名后附加“_NoDuplicates”。
該過(guò)程區(qū)分大小寫(xiě),因此一行“raymondcc”不會(huì)與“Raymondcc”重復(fù)。由于 RemoveDup 是開(kāi)源的,我們對(duì)原始程序進(jìn)行了一些更新和改進(jìn)。

它現(xiàn)在使用 .NET Framework 4,這意味著 Windows 10 用戶不需要單獨(dú)安裝 .NET 3.5。輸入框現(xiàn)在具有拖放支持,因此您無(wú)需手動(dòng)瀏覽即可將文本文件拖放到輸入框上。
最后,我們添加了一個(gè)復(fù)選框,使進(jìn)程可以選擇忽略大小寫(xiě),因此“raymondcc”將是“Raymondcc”的副本。
請(qǐng)將有關(guān)修改版本的任何問(wèn)題/反饋發(fā)送到本文的評(píng)論部分。修改后的源包含在存檔中。

刪除文本文件中重復(fù)行的8種方法 (文本去重方法匯總)

該軟件依賴 .NET Framework 4框架,這意味著Windows 10用戶不需要單獨(dú)安裝.NET 3.5。
輸入框支持拖放,因此你無(wú)需手動(dòng)瀏覽即可將文本文件拖放到輸入框上。
最后,我們添加了一個(gè)復(fù)選框,使進(jìn)程可以選擇忽略大小寫(xiě),因此“raymondcc”將是“Raymondcc”的副本。

5.Notepad++

Notepad++ 是一個(gè)功能豐富且流行的文本編輯器,它從來(lái)沒(méi)有集成過(guò)刪除重復(fù)行的功能。
需要一個(gè)名為 TextFX 的額外插件。但是,在最近的版本中,從文本文件中刪除重復(fù)行的功能現(xiàn)在直接內(nèi)置到程序中。

刪除文本文件中重復(fù)行的8種方法 (文本去重方法匯總)

您所要做的就是單擊“編輯”菜單并轉(zhuǎn)到“文件操作”。有兩種選擇;刪除重復(fù)行和刪除連續(xù)重復(fù)行。第一個(gè)是不言自明的,它只是從文本中刪除所有完全重復(fù)的行。
第二個(gè)選項(xiàng)僅刪除在下一行有重復(fù)項(xiàng)的行,而兩個(gè)重復(fù)項(xiàng)之間的不同行將被忽略。

Notepad++ 重復(fù)行菜單功能區(qū)分大小寫(xiě)。您還可以使用搜索和替換 (Ctrl+H) 運(yùn)行忽略大小寫(xiě)的簡(jiǎn)單刪除操作。
將不帶引號(hào)的“(?si)^(.+?\R)(?=(?:.+\R)?\1)”粘貼到“Find what:”框中,確保“Replace with:”為空,選擇正則表達(dá)式搜索模式,然后按“全部替換”。
保留文件中每個(gè)重復(fù)行的最后一次出現(xiàn)。

使用Windows 命令刪除重復(fù)行

混合使用內(nèi)置的 Windows 命令,可以從文本文件中刪除重復(fù)的行。

6.使用批處理腳本

將這些命令放在一個(gè)批處理腳本中,可以快速輕松地進(jìn)行處理。如果您的計(jì)算機(jī)對(duì)運(yùn)行第三方軟件有任何限制,這也很有用。

刪除文本文件中重復(fù)行的8種方法 (文本去重方法匯總)

一個(gè) BAT 文件區(qū)分大小寫(xiě),除非它們的大小寫(xiě)也相同,否則不會(huì)改變行,另一個(gè)腳本不區(qū)分大小寫(xiě)。
要?jiǎng)h除重復(fù)的行,請(qǐng)將文本文件拖放到 .BAT 文件中,它會(huì)自動(dòng)處理并輸出帶有 _deduped 后綴的同一文件夾中的文件。
這些行不會(huì)重新排序,而是原地刪除,如果您想保持與原始行順序相同的行順序,這是理想的選擇。

使用在線服務(wù)刪除重復(fù)行

有許多在線服務(wù)可以完成從文本中刪除重復(fù)行的工作,我們選擇了一些應(yīng)該滿足您需求的服務(wù)。

7. PineTools 在線刪除重復(fù)行

PineTools 是我們最喜歡的網(wǎng)站,因?yàn)樗鼡碛写罅坑糜诟鞣N任務(wù)的在線工具。

網(wǎng)址:https://pinetools.com/remove-duplicate-lines

它們的范圍從顏色選擇器、日期/時(shí)間工具和(隨機(jī))數(shù)字生成器到圖像編輯器、編程語(yǔ)法熒光筆和數(shù)學(xué)計(jì)算器。有近20種文本和列表工具,其中去除重復(fù)行就是其中之一。

刪除文本文件中重復(fù)行的8種方法 (文本去重方法匯總)

只需將文本粘貼到原始文本框中,按REMOVE,過(guò)濾后的文本就會(huì)出現(xiàn)在無(wú)重復(fù)行框中。
按“全選”并將其復(fù)制回文本編輯器。有忽略大小寫(xiě)、轉(zhuǎn)換為大寫(xiě)/小寫(xiě)、忽略/刪除空行以及按字母順序?qū)敵鲞M(jìn)行排序的選項(xiàng)。
更改選項(xiàng)后再次按刪除以查看結(jié)果。

8.文本機(jī)器

不要將此網(wǎng)站與 TextMechanic Offline 工具混淆,因?yàn)閮烧呤遣煌说莫?dú)立產(chǎn)品。
TextMechanic 有許多不同的基于在線文本的操作工具。
除了只刪除重復(fù)的行,如果您想同時(shí)使用所有其他工具,請(qǐng)使用多合一文本操作記事本 。

網(wǎng)址:http://textmechanic.com/text-tools/basic-text-tools/remove-duplicate-lines/

刪除文本文件中重復(fù)行的8種方法 (文本去重方法匯總)

有兩種方法可以讓你的文本進(jìn)入窗口;使用加載文件按鈕瀏覽文本文件或按藍(lán)色 C 按鈕清除窗口中的當(dāng)前文本并粘貼您自己的文本。

然后單擊刪除重復(fù)行按鈕。如果您的文本需要,“區(qū)分大小寫(xiě)”和“刪除空行”復(fù)選框可用。已刪除顯示在單獨(dú)的框中顯示已刪除的行。

完成后,單擊另存為按鈕或按 S 選擇所有文本,右鍵單擊并復(fù)制它 (Ctrl+C),準(zhǔn)備粘貼到文本編輯器中。

軟件可以在右側(cè)打包下載:

刪除文本文件中重復(fù)行的8種方法 (文本去重方法匯總)

原文地址:https://www.raymond.cc/blog/remove-duplicate-lines-with-textcrawler-scratchpad-or-notepad 翻譯過(guò)程中有改動(dòng)。