提取文本中不相同行的命令:
比如:
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就好了。