2014-04-13 162 views
0

我不是程序員,但我想幫助刪除文檔中的重複行,並只保留原始行。 我試圖用一些文本處理器editpadpro做到這一點,但由於我的文件超過1 GB,總是被凍結,無法完成操作。刪除txt文檔中的重複行並保留一行?

我知道perl在這方面非常好,但我不知道如何使用它,請記住該文件可以超過1或2 GB。輸入線

例如:輸出線

line 1 
line 2 
line 3 
line 1 
line 2 
line 4 
line 1 

例如:

line 1 
line 2 
line 3 
line 4 

我很抱歉,如果這是很基本的,但我真的不知道如何着手,大部分我使用內置函數的時間,我希望不要惹惱任何有這個問題的人。

+0

http://stackoverflow.com/questions/ 12841024 /使​​用windows-dos-shell-batch-commands-how-do-i-take-a-file-and-only-keep-uniqu但我不確定可以完成大文件。 –

回答

2

如果你不介意在原來的順序不是行,你可以使用這個命令:

$ sort -u old_file.txt > new_file.txt 

sort將整理您的文件,以及-u選項代表獨特這意味着它只會輸出第一個匹配的行。

即使是非常大的文件,sort也許是您最大的希望。

+0

好的,謝謝,我在linux上運行它的終端,它的工作原理,首先我認爲它沒有,但我打開系統監視器,並正在工作。非常感謝,我的投票。 – alex

1

保留現有順序(第一次的每一行被發現):

perl -i -wlne'our %uniq; $uniq{$_}++ or print' file.txt 
+0

是file.txt我的輸入文本的名稱? – alex

+0

是的,它是你的輸入文本的名稱(和文件將被修改,除非你刪除-i) – ysth

+0

好吧,我投票給你。謝謝您的幫助 – alex

相關問題