我不是程序员,但我想帮助删除文档中的重复行并仅保留原始行。 我试图用一些文本处理器,editpadpro,但由于我的文件超过1千兆字节,总是被冻结,无法完成操作。
我知道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 :(得分:2)
如果您不介意行不符合原始顺序,可以使用此命令:
$ sort -u old_file.txt > new_file.txt
sort
将对您的文件进行排序,-u
选项代表唯一,这意味着它只会输出第一个匹配的行。
即使文件非常大,sort
也许是您最大的希望。
答案 1 :(得分:1)
保留现有订单(第一次找到每一行):
perl -i -wlne'our %uniq; $uniq{$_}++ or print' file.txt
答案 2 :(得分:0)
使用awk
:http://awk.freeshell.org/AwkTips
awk '!a[$0]++'