博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一道shell题,perl解法
阅读量:6116 次
发布时间:2019-06-21

本文共 960 字,大约阅读时间需要 3 分钟。

题目:

一文件,内容如下

 
  1. zhangsan     80 
  2. lisi         81.5 
  3. wangwu       93 
  4. zhangsan     85 
  5. lisi         88 
  6. wangwu      97 
  7. zhangsan    90 
  8. lisi        92 
  9. wangwu      88 

要求:

 
  1. 要求输出格式:(average:平均成绩,total:总成绩) 
  2. name#######average#######total 
  3. zhangsan            xxx                        xxx 
  4. lisi                       xxx                        xxx 
  5. wangwu             xxx                        xxx 

这个题目都做烂了,原理么一样,上代码:

 
  1. #!/usr/bin/perl -w 
  2.  
  3. use strict; 
  4.  
  5. BEGIN { 
  6.        eval{ require List::Util; }; 
  7.        import List::Util qw/sum/ unless $@; 
  8.  
  9. my %name; 
  10.  
  11. open my $file,'<','a.txt' or die "$!\n"; 
  12.  
  13. while ( <$file> ) { 
  14.        chomp; 
  15.        my @array = split /\s+/; 
  16.        $name{$array[0]} = [] unless exists $name{$array[0]}; 
  17.        push @{$name{$array[0]}},$array[1]; 
  18.  
  19. close $file; 
  20.  
  21. print "name#######average#######total\n"; 
  22.  
  23. for my $name ( sort keys %name ) { 
  24.     my @tmp_array = @{$name{$name}}; 
  25.     print $name,"\t",sum(@tmp_array)/(scalar @tmp_array),"\t",sum(@tmp_array),"\n"; 

output:

 
  1. [root@Xen ~]# perl a.pl 
  2. name#######average#######total 
  3. lisi    87.1666666666667        261.5 
  4. wangwu  92.6666666666667        278 
  5. zhangsan        85      255 
本文转自dongfang_09859 51CTO博客,原文链接:http://blog.51cto.com/hellosa/593981,如需转载请自行联系原作者
你可能感兴趣的文章
Dubbo学习总结(2)——Dubbo架构详解
查看>>
代码托管平台简介
查看>>
Linux命令行访问网页
查看>>
md5对比文件
查看>>
JavaScript强化教程——正则表达式回溯
查看>>
Windows Server Backup恢复Exchange 2010用户邮箱(Windows2008R2)
查看>>
数据可视化(三)基于 Graphviz 实现程序化绘图
查看>>
寻找apache启动报”Segmentation fault”的原因 <已解决,待分析>
查看>>
Python练手,numpy.genfromtxt
查看>>
MySQL事务隔离级别详解
查看>>
windows server 2008 R2 和windows 7 安装telnet服务
查看>>
Zookeeper【最新版V3.4.6】- 翻译系列 1: FAQ
查看>>
SQL SERVER 分区表的总结
查看>>
Citrix XenDesktop 7.6 VDA TechPreview版 交付 Windows 10
查看>>
初学者安装oracle11g报错,求赐教
查看>>
D3.js area函数
查看>>
win7下运行nodejs的中文报错:Error: write EIO
查看>>
为tomcat指定JDK
查看>>
互动百科旗下HDwiki漏洞补丁包暗藏后门 加速乐紧急防御
查看>>
glbp详解
查看>>