Chinaunix
标题:
求助,麻烦大家,一个插入问题~老折腾不好!
[打印本页]
作者:
xiayuu119
时间:
2016-04-20 07:15
标题:
求助,麻烦大家,一个插入问题~老折腾不好!
输入:
a 3 20
a 6 50
b 5 60
b 7 30
输出:
a
1 0
2 0
3 20
4 0
5 0
6 50
b
1 0
2 0
3 0
4 0
5 60
6 0
7 30
就是 第二列 按顺序 补齐 空位0
请大神帮忙~~指点!~ 先感谢了!!!
作者:
jason680
时间:
2016-04-20 08:24
回复
1#
xiayuu119
$ perl put0.pl
a
1 0
2 0
3 20
4 0
5 0
6 50
b
1 0
2 0
3 0
4 0
5 60
6 0
7 30
$ cat put0.pl
use strict;
use warnings;
my $sLast_name = "";
my $sLast_item = "";
while(<DATA>){
my($sName, $sItem, $sValue) = split;
my $sStart = 1;
$sStart += $sLast_item if($sName eq $sLast_name);
print "$sName\n" if($sName ne $sLast_name);
print "$_ 0\n" for($sStart .. $sItem-1);
print "$sItem $sValue\n";
$sLast_name = $sName;
$sLast_item = $sItem;
}
__DATA__
a 3 20
a 6 50
b 5 60
b 7 30
作者:
sunzhiguolu
时间:
2016-04-20 09:46
本帖最后由 sunzhiguolu 于 2016-04-20 11:05 编辑
#!/usr/bin/perl
use strict;
use warnings;
use v5.14;
my %hData;
map {my ($a,$b,$c)=(@$_);$hData{$a}{$b}=join (' ',$b,$c)} map {chomp;[split]} <>;
foreach my $sHead (sort keys %hData){
say $sHead;
my $sBegin = 1;
foreach my $sEnd (sort {$a <=> $b} keys %{$hData{$sHead}}){
say "$_ 0" for $sBegin .. ($sEnd - 1);
say $hData{$sHead}{$sEnd};
$sBegin += $sEnd;
}
say "";
}
复制代码
作者:
RE_HASH
时间:
2016-04-20 10:51
本帖最后由 RE_HASH 于 2016-04-20 10:57 编辑
cat aa|perl -ne '$a->{$1}->{$2}=$3 if (/(\w) +(\d+) +(\d+)/); END{ foreach (sort keys %$a) { print "$_\n"; my $i; while (keys %{$a->{$_}} ) { printf "%d %d\n",++$i, delete $a->{$_}->{$i} ; }}}'
作者:
L_WC
时间:
2016-04-20 17:19
回复
1#
xiayuu119
use Data::Dumper;
while(<DATA>){
my ($cat,$line,$value,) = split;
$hash->{$cat}{$line} = $value;
}
print Dumper $hash;
foreach my $k (sort keys %$hash){
print $k;
print "\n";
my @lines = sort keys %{$hash->{$k}};
foreach my $c (1 .. $lines[-1]){
print $c;
print "\t";
$hash->{$k}{$c} = 0 if not exists $hash->{$k}{$c};
print $hash->{$k}{$c};
print "\n";
}
}
__DATA__
a 3 20
a 6 50
b 5 60
b 7 30
output ---->
$VAR1 = {
'b' => {
'7' => '30',
'5' => '60'
},
'a' => {
'6' => '50',
'3' => '20'
}
};
a
1 0
2 0
3 20
4 0
5 0
6 50
b
1 0
2 0
3 0
4 0
5 60
6 0
7 30
复制代码
作者:
xiayuu119
时间:
2016-04-21 01:07
献上我的膝盖!! ~~~各位太强大了~!!~!
lol
lol
太感谢了~~~!!~~
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2