亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
perl文件匯總處理?
[打印本頁]
作者:
linux68
時(shí)間:
2011-07-21 18:31
標(biāo)題:
perl文件匯總處理?
我又一個(gè)這樣的文件:
2011-07-14 508659 47565 1454 268418 7414 120506 42236 18341 1724 1001
2011-07-15 512299 49171 1451 272390 9257 115802 41476 19736 1913 1103
2011-07-16 593584 64497 1938 315873 12554 121701 51259 22347 2258 1157
2011-07-17 579760 61131 1871 324644 12819 112279 43750 20446 2298 522
2011-07-18 488095 46196 1351 268757 9447 101951 39843 18563 1758 229
2011-07-19 506264 47166 1369 274203 9608 117195 36280 18357 1849 237
2011-07-20 542874 44995 2919 1457 273729 9865 128045 36265 43493 2050 56
每列之間用\t分隔,我想把除日期之外的數(shù)據(jù)分列求和,最好把日期寫到第一列:結(jié)果如下:
07.17--07.20 3731535 360721 12353 1725742 334828 699299 382889 154055 55293 6299 56
謝謝!
作者:
kurri
時(shí)間:
2011-07-22 03:06
#!/usr/bin/perl -w
open FH,"</home/kurri/Templates/abc";
my @info;
while (<FH>) {
chomp;
my @tmp = (split /\s+/);
push @{$info[0]},$tmp[0];
my $i = 1;
while ($i < @tmp) {
$info[$i] += $tmp[$i];
$i++;
}
}
close FH;
$info[0]->[0] =~ s/^\d+-(\d+)-(\d+)$/$1.$2/;
$info[0]->[-1] =~ s/^\d+-(\d+)-(\d+)$/$1.$2/;
$info[0] = $info[0]->[0]."--".$info[0]->[-1];
print join "\t",@info,"\n";
復(fù)制代碼
初學(xué)寫的很丑。。。
作者:
albertd
時(shí)間:
2011-07-22 04:49
本帖最后由 albertd 于 2011-07-22 04:52 編輯
my (@a,@b,@c);
while (<>) {
chomp;
@a = split /\s+/;
push (@b, (substr shift @a, 5));
foreach (0..$#a) {
$c[$_] += $a[$_];
}
}
print "$b[0]--$b[-1] @c\n";
復(fù)制代碼
作者:
seufy88
時(shí)間:
2011-07-22 09:54
本帖最后由 seufy88 于 2011-07-22 10:06 編輯
初學(xué)的。試一下
open my $FD,'<','/tmp/file';
my $count=0;
my @array;
while(<$FD>){
chomp;
my @fields=split/\s+/,$_;
$array[$count]=\@fields;
$count+=1;
}
my @result;
for my $j (1..11){
my $temp;
for my $i (0..$#array){
$temp=$temp+$array[$i][$j];
}
push @result,$temp;
}
print "@result\n";
作者:
xxhacker
時(shí)間:
2011-07-22 11:40
本帖最后由 xxhacker 于 2011-07-22 11:42 編輯
#! /usr/bin/perl
my (@a,@b);
while(<DATA>) {
@a = split;
for (my $i=1;$i<=$#a;$i++) {
$b[$i] += $a[$i];
}
}
print "@b";
__DATA__
2011-07-14 508659 47565 1454 268418 7414 120506 42236 18341 1724 1001
2011-07-15 512299 49171 1451 272390 9257 115802 41476 19736 1913 1103
2011-07-16 593584 64497 1938 315873 12554 121701 51259 22347 2258 1157
2011-07-17 579760 61131 1871 324644 12819 112279 43750 20446 2298 522
2011-07-18 488095 46196 1351 268757 9447 101951 39843 18563 1758 229
2011-07-19 506264 47166 1369 274203 9608 117195 36280 18357 1849 237
2011-07-20 542874 44995 2919 1457 273729 9865 128045 36265 43493 2050 56
復(fù)制代碼
看了樓主的需求,我自己也寫了一個(gè),哈哈,竟然和三樓的思路竟是一樣的~~
作者:
lkk2003rty
時(shí)間:
2011-07-22 11:44
perl -F'\t' -ane '$a=0;foreach (@F[1..$#F]){$a+=$_;}print "$F[0] $a @F[1..$#F]";' file
復(fù)制代碼
一句話就夠了~~
歡迎光臨 Chinaunix (http://www.72891.cn/)
Powered by Discuz! X3.2