在perl中排序和uniq文本文件

时间:2014-01-14 12:25:30

标签: perl sorting

我正在处理一个文本文件。它有多个行条目,我正在尝试排序和uniq文件。我试图将输出写入同一个文件,但似乎很难。所以我写的是另一个文件。我已经能够排序,但没有得到独特的。 我的文本文件中的一些行

AB.CD.EF
BA.CD.EF
DC.AB.EF
CD.AB.EF
AB.CD.EF
DC.AB.EF
EF.CD.AB
BA.CD.EF
EF.DC.AB etc....

我用来排序的代码是

open(FH,'<mytext.txt');
open(OFH,'>myouttext.txt');
print OFH sort <FH>;
close(OFH);
close(FH);

我需要在此代码或其他方式中包含唯一部分,但仍然应该在同一代码块中完成排序和唯一。如果它可以完成并写入同一个文件会很棒。在此先感谢。

1 个答案:

答案 0 :(得分:2)

open(FH, '<', 'mytext.txt') or die $!;
open(OFH,'>', 'myouttext.txt') or die $!;

my %seen;
print OFH sort grep !$seen{$_}++, <FH>;

close(OFH);
close(FH);

使用cmd行保存对同一文件的更改

sort -u -o mytext.txt mytext.txt