魏长东

weichangdong

perl命令行学习

网上遇见这样一个问题:

perl解析报文,每3行输出到1行,怎么实现
例如
a1
a2
a3
b1
b2
b3
c1
c2
c3
结果
a1a2a3
b1b2b3
c1c2c3


我用shell和perl分别实现了:

cat  test_baidu
a1
a2
a3
b1
b2
b3
c1
c2
c3
[root@swordman perl]# sed  -e 'N;N;s/\n//g' test_baidu
a1a2a3
b1b2b3
c1c2c3

perl语言实现

open('WCD','<test_baidu') or  die('error');
my $num = 1;
my $str = '';
while(<WCD>)
{
        chomp($_);
        $str .= $_;
        if ($num % 3 == 0) {
                print $str."\n";
                $str = '';
                $num=0;
        }
        $num++;
}