提取文本中不相同行的命令:
比如:
31256        36588        642273
31256        36588        642273
31256        31607        642273
31608        31627        642273
35440        36385        642273
36386        36588        642273
98013        103345        642273
98013        103345        642273
重复的就要一次,得到:
31256        36588        642273
31256        31607        642273
31608        31627        642273
35440        36385        642273
36386        36588        642273
98013        103345        642273
代码
 
#!/usr/bin/perl
use warnings;
use strict;
my $line = '';
open(INFILE, "E:/finagene/chr_19.txt");
open OUT1,'+>E:/finagene/chuli_chr_19.txt';
while (<INFILE>){
        if($_ ne $line){
                print OUT1 "$_n";;
                $line = $_;
        }
}
exit;
有朋友说这段程序有误,序列太简单了。
31256        36588        642273
31256        36588        642273
31256        31607        642273
31608        31627        642273
35440        36385        642273
36386        36588        642273
98013        103345        642273
98013        103345        642273
31256        36588        642273   #这是多加入的一行,输出就错误了。
其实,这里提供的程序,可以针对排完序的行这样处理,如果想对任意的行处理,用linux的命令:cat sort uniq就好了。