我有一个包含大量网络名称的文件。我想将公交车网络压缩如下:
abc/def/gh[0]
abc/def/gh[1]
abc/def/gh[2]
ab/ef/xx
abc/def/gh[3]至
abc/def/gh[3:0]
ab/ef/xx发布于 2009-06-29 06:58:56
这个问题还不清楚。然而,这是我想出来的:
#!/usr/bin/perl
use strict;
use warnings;
my %data;
while (<DATA>) {
chomp;
if (s/^(.+)\[(\d+)\]/$1/) {
$data{$1} = $2;
}
else {
$data{$_} = 0;
}
}
for ( keys %data ) {
if ( $data{$_} ) {
print "$_\[$data{$_}:0\]\n";
}
else {
print "$_\n";
}
}
__END__
abc/def/gh[0]
abc/def/gh[1]
abc/def/gh[2]
ab/ef/xx
abc/def/gh[3]发布于 2009-06-29 12:10:07
在不深入细节的情况下,您似乎想
,则
这可能是实现这一目标的最有效的方法。排序将把属于一起的所有行组合在一起。连接相邻行是一个简单而直接的操作。如果您知道所有循环条目都是从开始的,并且是连续的,那么连接相邻的行就更加微不足道了。
https://stackoverflow.com/questions/1056876
复制相似问题