免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4069 | 回复: 1
打印 上一主题 下一主题

寻求文件处理问题,根据表头处理文件问题 [复制链接]

论坛徽章:
2
CU大牛徽章
日期:2013-04-17 11:46:28CU大牛徽章
日期:2013-04-17 11:46:39
1 [报告]
发表于 2012-06-18 21:13 |显示全部楼层
  1. #!/usr/bin/env perl

  2. use strict;
  3. use warnings;

  4. use List::MoreUtils qw( first_index );

  5. my @names = qw( no_ext exe dat cab );
  6. my %hash;

  7. @hash{@names} = ([], [], [], []);

  8. while (1) {
  9.     last if not defined(my $line1 = <DATA>);
  10.     last if not defined(my $line2 = <DATA>);
  11.     my @headers = split /,/, $line1;
  12.     my @datas = split /,/, $line2;
  13.     for my $key (keys %hash) {
  14.         my $val = 0;
  15.         my $i = first_index { lc($_) eq $key } @headers;
  16.         if ($i >= 0) {
  17.             $val = $datas[$i];
  18.         }
  19.         push @{$hash{$key}}, $val;
  20.     }
  21. }

  22. foreach my $name (@names) {
  23.     print "$name\t\t";
  24. }
  25. print "\n";

  26. foreach my $i (0..4) {
  27.     foreach my $key (@names) {
  28.         print "$hash{$key}->[$i]\t\t";
  29.     }
  30.     print "\n";
  31. }

  32. __DATA__
  33. no_ext,jpg,swf,png,zip,xml,EXE,mp3,jsp,kprar,
  34. 12,2170772,148620,401807,98198,18612,8504,300,4,1,
  35. no_ext,dat,html,1 ,xml,php ,bin,
  36. 2337488,58234,27,9,4,1,1,
  37. no_ext,swf,jpg,xml,cab,
  38. 1459109,1832,2,3,1,
  39. no_ext,cab,ini,exe,png,zip,jpg,txt,z,7z,dd,ico,php ,
  40. 675,1333487,8949,52260,658,549,154,11,76,60,1,5,1,
  41. no_ext,fcg,xml,jpg,php,js,
  42. 22,1286870,4,1,2,1,
复制代码

论坛徽章:
2
CU大牛徽章
日期:2013-04-17 11:46:28CU大牛徽章
日期:2013-04-17 11:46:39
2 [报告]
发表于 2012-06-19 22:10 |显示全部楼层
  1. #!/usr/bin/env perl

  2. use strict;
  3. use warnings;

  4. my @names = qw( no_ext exe dat cab EXE);
  5. my %hash;

  6. while (my $line1 = <DATA>) {
  7.     my %tmp;
  8.     my $line2 = <DATA>;
  9.     @tmp{split /,/, $line1} = split /,/, $line2;
  10.     for my $name (@names) {
  11.         push @{$hash{$name}}, $tmp{$name} || 0;
  12.     }
  13. }

  14. print join("\t\t", @names), "\n";
  15. foreach my $i (0..$#{$hash{$names[0]}}) {
  16.     print join("\t\t", (map {$hash{$_}->[$i]} @names)), "\n";
  17. }

  18. __DATA__
  19. no_ext,jpg,swf,png,zip,xml,EXE,mp3,jsp,kprar,
  20. 12,2170772,148620,401807,98198,18612,8504,300,4,1,
  21. no_ext,dat,html,1 ,xml,php ,bin,
  22. 2337488,58234,27,9,4,1,1,
  23. no_ext,swf,jpg,xml,cab,
  24. 1459109,1832,2,3,1,
  25. no_ext,cab,ini,exe,png,zip,jpg,txt,z,7z,dd,ico,php ,
  26. 675,1333487,8949,52260,658,549,154,11,76,60,1,5,1,
  27. no_ext,fcg,xml,jpg,php,js,
  28. 22,1286870,4,1,2,1,
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP