从多个文件中提取列,文件名为每列的标题

时间:2013-11-04 07:52:28

标签: header filenames

我尝试了很多,但找不到满意的答案。对不起,如果是重新发布。

我基本上想要的是一个修改过的粘贴或剪切命令,我可以从多个文件打印一个特定的列,让我们说每个文件的第二列,文件名作为该列的标题。

例如,我的文件以制表符分隔,格式为。

档案1

1    10
2    13
3    8
4    18
...   ...

文件2

1    11
2    9
3    10
4    22
...   ...

档案3

1    8
2    27
3    15
4    16
...   ...

等等。

所需的输出

     File 1      File 2     File 3
1    10            11         8
2    13            9          27 
3    8             10         15
...   ....       .....        .....

如果第一列指示值来自的行,则为最佳。但即使这是不可能的,也是可以控制的。我查看了join,但它一次只能处理两个文件。任何帮助将不胜感激。

谢谢!

编辑:

这是我在Perl中尝试过的。

my @files = @ARGV;
foreach my $file (@files)
{
    open(IN, $file) or die $!; 
    while(<IN>)
    {   
        chomp;
        my @line = split "\t";
        my $row = $line[0];
       $file{$row} = $line[1];
    }   
    foreach my $key (sort {$a <=> $b} keys %file)
    {   
        print "$key\t$file{$key}\n";
    }   
}

我无法理解如何为每个文件按行输出值,文件名也是标题。

0 个答案:

没有答案