• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    perl对长度不一文本的行列进行置换的实现代码

    有时遇到各行或各列的长度不一致时就麻烦了,虽然可以在R里面把文件按最长的行(列)填充,但是不便,所以想起用perl去实现一个。
    由逗号分隔的不定长度的文本文件, 现要实现行列转置, 即由

    复制代码 代码如下:

    1,2,3,4,5,6,
    7,8,9,
    10,11,12,13,
    转换为:
    1,7,10,
    2,8,11,
    3,9,12,
    4,  ,13,
    5,  ,    ,
    6,  ,    ,

    以下是完整的代码,供大家参考。

    复制代码 代码如下:

    #!/usr/bin/perl -w
    my @matrix;
    my $max_len = 0;
    while(DATA>){
    chomp;
    s/,$//g;
    my @fields = split /,/, $_;
    my $len = @fields;
    $max_len = $max_len > $len ? $max_len : $len;
    push @matrix, [@fields];
    }
    for my $col (0..$max_len - 1){
    for my $line (@matrix){
    print $line->[$col] || ' ', ',';
    }
    print "\n";
    }
    __DATA__
    1,2,3,4,5,6,
    7,8,9,
    10,11,12,13,

    准备学习下,自己动手实现一遍,最好是做成模板,随调随用。

    上一篇:perl调用外部命令(g)awk的方法
    下一篇:perl哈希hash的常见用法介绍
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    perl对长度不一文本的行列进行置换的实现代码 perl,对,长度,不一,文本,