使用Perl将行转换为列

时间:2011-08-01 21:59:30

标签: perl

我是Perl的新手。我有一项任务,将行转换为大数据的列。

customers         goods     transportation
----------        -----     --------------
A, B, C, D        rice      truck
E, G, D           corn      train
.............     .....     .........
T, H, K, M, N     wheat     air cargo


我希望输出看起来像:

customers         goods     transportation
----------        -----     --------------
A                 rice      truck
B                 rice      truck
C                 rice      truck
D                 rice      truck
.............     .....     .........
N                 wheat     air cargo

任何人都可以提供帮助。非常感谢你。

3 个答案:

答案 0 :(得分:2)

很可能你遇到了map function,研究它是如何工作的以及你如何构建行或列,你会得到它,祝你好运! :)

答案 1 :(得分:1)

谢谢大家。经过几个小时的尝试,我可以弄清楚如何完成我的任务。 它需要一些简单的步骤来手动干预输入和输出, 即在输入的第一列末尾添加,并删除\ 使用Excel输出的第二列。 是时候提交输出了。如果有人有更好的Perl,我感激不尽 代码来解决它。

#!/usr/bin/perl
my @records;
while (<DATA>) {
    chomp;
    my @columns = split ", ", $_;
    push @records, \@columns;
}

foreach my $record (@records) {
    foreach my $column (@{$record}) {
        if (\$column != \$$record[-1]) {
            print "$column\t \\$$record[-1]\n";
        }
    }
}

__DATA__
A, B, C, D,     Rice    Truck
E, G, D,    Corn    Train
T, H, K, M, N,  Wheat   Air cargo

__OUTPUT__
A    \  Rice    Truck
B    \  Rice    Truck
C    \  Rice    Truck
D    \  Rice    Truck
E    \  Corn    Train
G    \  Corn    Train
D    \  Corn    Train
T    \  Wheat   Air cargo
H    \  Wheat   Air cargo
K    \  Wheat   Air cargo
M    \  Wheat   Air cargo
N    \  Wheat   Air cargo

答案 2 :(得分:0)

我看了perl已经有很长一段时间了,但这个perl mod有什么好处吗?

Data::Pivot