如何使用perl中的分隔符拆分大量输出

时间:2014-04-11 08:46:43

标签: perl

我有一个下面给出的输出,我想使用perl使用分隔符将其拆分。

示例:

@output = "00:10:94:00:00:08
           line1
           line2
           line3
           line4
           7.1.1.18    00:10:94:00:00:08
          00:10:94:00:00:09
           line1
           line2
           line3
           line4
           7.1.1.19    00:10:94:00:00:09" ;

现在在上面的示例中,我必须以我希望00:10:94:00:00:08及其相应行的方式拆分输出,直到它以ip 7.1.1.18结尾,并在单个内部使用相同的mac 00:10:94:00:00:08数组中的索引。类似的另一个mac及其行必须在数组中的另一个索引中。在此之后,我必须查看提供的mac或ip是否与索引中存储的输出匹配。

1 个答案:

答案 0 :(得分:0)

您可以使用全局模式匹配将该示例输入拆分为块,如下所示:

#!/usr/bin/perl

use strict;
use warnings;

my $str = "00:10:94:00:00:08
line1
line2
line3
line4
7.1.1.18    00:10:94:00:00:08
00:10:94:00:00:09
line1
line2
line3
line4
7.1.1.19    00:10:94:00:00:09";

while ($str =~ m/([\d:]+)(.*)\1/sg) {
    print ">>>$1 $2 $1<<<\n";
}

之后,您可以使用split / /将它们拆分为单行或字段。