在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2632|回复: 2

[求助] 求助perl语言处理数组重新排列

[复制链接]
发表于 2020-8-19 20:43:46 | 显示全部楼层 |阅读模式
500资产
文本test.txt格式为x行y列,假设内容为:
00 00 00 00
00 00 00 55
00 00 00 aa
00 00 00 cc
11 11 11 00
11 11 11 55
11 11 11 aa
11 11 11 cc

。。。。。。
想重新排列为x/4行,4*y列,例如下面的格式:
00 00 00 00 11 11 11 00
00 00 00 55 11 11 11 55
00 00 00 aa 11 11 11 aa
00 00 00 cc 11 11 11 cc
小白请教大神perl语言代码,最好有说明,万分感谢,谢谢!!!!!!!


发表于 2020-8-20 11:09:27 | 显示全部楼层
#! /usr/bin/env perl

use 5.010;
use strict;
use warnings;
use autodie;

my %line_hash = (
                 0 => [],
                 1 => [],
                 2 => [],
                 3 => [],
                );

open my $fr, "<", shift;
open my $fw, ">", shift;

my $linenum = 0;
while(<$fr>) {
  chomp;
  push @{$line_hash{$linenum%4}}, " ".$_;
  if($linenum == 7) {
    say $fw @{$line_hash{$_}} for 0..3;
    undef @{$line_hash{$_}} for 0..3;
    $linenum = 0;
  }
  else {
    $linenum++;
  }
}

close $fr;
close $fw;


%change.pl infile outfile

 楼主| 发表于 2020-8-22 10:19:13 | 显示全部楼层


A1985 发表于 2020-8-20 11:09
#! /usr/bin/env perl

use 5.010;


非常感谢,能不能简单备注下,每行的意思,shift是我的原始文本名吗?我运行不起来,麻烦了,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-18 13:56 , Processed in 0.016027 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表