- 论坛徽章:
- 0
|
比如我有一堆数据
>1
1234
>2
2235
>3
5895
>4
5896
>5
7595
想通过perl变成
>1 1234
>2 2235
>3 5895
>4 5896
>5 7595,
#! perl -w
print "Please enter the folder name:\n";
chomp ($folder=<STDIN>);
print "The output folder name:\n";
chomp ($output=<STDIN>);
mkdir $output;
opendir(R,"$folder") || die "folder does not exist";
@num=readdir(R);
closedir(R);
shift(@num);
shift(@num);
$n=@num;
open (W,">","document.txt");
print W "Total files: $n \n\n";
foreach (@num){
print W "$_ is read\n";
$new = "com_"."$_";
open (IN,"./$folder/$_")|| die "Could not open file $_";
@all = <IN>;
close (IN);
foreach (@all) {
chomp $_;
s/^>//;
}
%notsorted = @all;
open (OUT,">","$output/$new")|| die "Could not open new file: $new.\n ";
foreach $seqname (keys %notsorted){
$notsorted{$seqname} =~ tr/atcg/ATCG/;
printf OUT ("%-30s%s",$seqname,$notsorted{$seqname});
print OUT "\n";
}
close OUT;
}
close W;
但是输出后,文件的名字是乱序的,请问怎么能按顺序输出?
|
|