1. 程式人生 > >使用EditPlus和批處理刪除文字重複內容行

使用EditPlus和批處理刪除文字重複內容行

相關文章

1、

由於要處理一個兩萬多行的資料,但要刪除其中內容重複的行,所以找了幾個方法:

1、使用EditPlus-工具-排序,勾選“刪除重複”。可惜不想把內容排序,卻被自動排序了。(勾選"區分位置",好像沒用?),這個效率相當快~差不多是瞬間完成的,之所以沒放棄editplus,確實它的優點有很多。

2、用sed替換重複內容,使用命令 -n "G;s/\n/&&/;/^\(.*\n\).*\n\1/d; s/\n//;h;P" "$(FilePath)" (這裡是在editplus裡的使用,注意$(FilePath)必須是帶路徑的檔名)。當然sed不需依賴editplus,可以單獨使用的。優點:刪除重複內容後,順序結構不變。缺點:不支援UTF-8,處理大檔案時(2w多行)就不行了。

3.使用一個批處理

@echo off
:: 刪除重複的行,但不能保留空行
:: 對不符合變數命名規則、變數個數超過限制的文字都無法正確處理
(echo 清除重複行後的檔案內容:& echo.)>str_.txt
for /f "delims=" %%i in (testText.txt) do (
if not defined %%i set %%i=A & echo %%i>>str_.txt)
:: start str_.txt

當然也不支援utf8,效率也比較慢,處理2w多行用了1分多鐘,不過排序沒有改變:)。