- 论坛徽章:
- 0
|
以下供参考。把288个文件(后缀.txt)和这个程序放到一个文件夹中,cd到该文件夹后,运行程序即可。- #!/usr/bin/perl
- use strict;
- use warnings;
- use File::Basename;
- my %data;
- my @files = glob "*.txt";
- for my $file (@files) {
- my $file_name = basename ($file);
- open my $fh, '<', $file or die $!;
- while (<$fh>) {
- next if /^\s*$/;
- next if /^gene_number/;
- chomp;
- my ($num, $pos, $snp) = split;
- $data{$num}{$pos}{$file_name} = $snp;
- }
- close $fh;
- }
- print "gene_number\tposition";
- for my $file (sort @files) {
- my $file_name = basename ($file);
- print "\t$file_name";
- }
- print "\n";
- for my $num (sort keys %data) {
- for my $pos (sort keys %{$data{$num}}) {
- print "$num\t$pos";
- for my $file (sort @files) {
- my $file_name = basename ($file);
- if (exists $data{$num}{$pos}{$file_name}) {
- print "\t$data{$num}{$pos}{$file_name}";
- } else {
- print "\tNA";
- }
- }
- print "\n";
- }
- }
复制代码 |
评分
-
查看全部评分
|