刪除文本文件中重復行的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 翻譯過程中有改動。