文件处理:文件中有重复的行,如何只保留其中的一行

文件处理:文件中有重复的行,如何只保留其中的一行

文件处理:文件中有重复的行,如何只保留其中的一行
请教各位高人:
字符串文件中,很多地方包含重复的行,如何只保留这些重复行中的一行,其他删除?
谢谢!




   

dao.
我的想法,依次读取源数据
用个hash存储每一行,
如果改项已存在(就是有相同的行)就不用再存了,否则就在hash里多加一项,最后把hash存下来.

不过我的办法如果数据量非常大的话比较耗内存,
看看各位有没有比较好的办法




   

这个方法是可以。不过我的.
这个方法是可以。不过我的这个文件将近1M,这样处理估计受不了。
有没有更好的方法,请高手献策!谢谢先!
用一个数据库中转--数据.
用一个数据库中转
数据库的字段设置为唯一索引
读取文本内容,按行写入数据库

然后从数据库读取出来记录
重新写到文件
Hi anthony
我每行的字符串长度都不是很长,行数比较多。
你能详细介绍一些如何做吗?多谢答复!
先用sort排序,用uniq -u显.
先用sort排序,用uniq -u显示不重复的行,再用uniq -d显示重复的行(只显示一行),最后合并就行了
Thanks!
我用的是ActivePerl.
sort -u 就可以了。.
[quote]回复给 singwa : 这个方法是可以。不过我的....[/quote]
1M 没啥,只要不超过 100M,用这个方法挺好。
如果你的文件很大,数十兆.
如果你的文件很大,数十兆乃至数百兆,
那么可以试试这个模块:

http://search.cpan.org/~cnandor/File-Sort-1.01/Sort.pm