免费注册 查看新帖 |

Chinaunix

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

求教怎样将部分相同的行给合并成一行 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-04-24 11:24 |只看该作者 |倒序浏览
本帖最后由 chenchenbeyond 于 2014-04-24 11:26 编辑

Dear all:
求教怎么用hash实现以下功能

文件里有以下内容
M11   D1  G1  S1  B1  NCH  L=1u  W=1u
M32   D1  G1  S1  B1  NCH  L=1u  W=1u
M23   D1  G1  S1  B1  NCH  L=1u  W=1u
M233   D1  G1  S1  B1  NCH  L=1u  W=1u
M234   D1  G1  S1  B1  NCH  L=1u  W=1u

希望将这些内容合并成
M11    D1  G1  S1  B1  NCH  L=1u  W=1u  M=5
即将相同的合并成一个,若有5个相同的行,就在行尾添加一个M=5

谢谢各位

论坛徽章:
0
2 [报告]
发表于 2014-04-24 11:52 |只看该作者
while(<DATA>)
{
    %hash{$_} ++;
}

for $key keys %hash{
  print $key  $hash{$key};
}

论坛徽章:
3
CU十二周年纪念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-12-14 14:57:19射手座
日期:2014-04-25 21:23:23
3 [报告]
发表于 2014-04-24 12:06 |只看该作者
{:3_186:}月经题又来了

论坛徽章:
0
4 [报告]
发表于 2014-04-24 12:22 |只看该作者
回复 3# mcshell


    那麻烦指教下

论坛徽章:
8
技术图书徽章
日期:2013-09-30 08:51:28技术图书徽章
日期:2013-12-11 09:26:39白羊座
日期:2013-12-27 15:27:13金牛座
日期:2014-01-06 09:13:05天蝎座
日期:2014-01-21 14:23:28酉鸡
日期:2014-05-09 16:51:12卯兔
日期:2014-08-11 16:49:1515-16赛季CBA联赛之八一
日期:2017-08-14 23:24:57
5 [报告]
发表于 2014-04-24 13:58 |只看该作者
本帖最后由 xiumu2280 于 2014-04-24 14:00 编辑

http://bbs.chinaunix.net/forum.p ... ;page=1#pid24164453

M11   D1  G1  S1  B1  NCH  L=1u  W=1u
M32   D1  G1  S1  B1  NCH  L=1u  W=1u
M23   D1  G1  S1  B1  NCH  L=1u  W=1u
M233   D1  G1  S1  B1  NCH  L=1u  W=1u
M234   D1  G1  S1  B1  NCH  L=1u  W=1u

如何合并的····

论坛徽章:
3
CU十二周年纪念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-12-14 14:57:19射手座
日期:2014-04-25 21:23:23
6 [报告]
发表于 2014-04-24 14:13 |只看该作者
本帖最后由 mcshell 于 2014-04-24 14:14 编辑

回复 4# chenchenbeyond
  1. my ($hash,@str);
  2. while (<DATA>) {
  3.     my @data = split;
  4.     push @str , shift @data;
  5.     pop @str if $hash->{"@data"}++;
  6. }
  7. print shift @str," $_ M=$hash->{$_}\n" for keys %$hash;  

  8. __DATA__
  9. M11   D1  G1  S1  B1  NCH  L=1u  W=1u
  10. M32   D1  G1  S1  B1  NCH  L=1u  W=1u
  11. M23   D1  G1  S1  B1  NCH  L=1u  W=1u
  12. M233   D1  G1  S1  B1  NCH  L=1u  W=1u
  13. M234   D1  G1  S1  B1  NCH  L=1u  W=1u
  14. M23   D1  G2  S1  B1  NCH  L=1u  W=1u
  15. M233   D1  G2  S1  B1  NCH  L=1u  W=1u
  16. M234   D1  G2  S1  B1  NCH  L=1u  W=1u
  17. M32   D1  G3  S1  B1  NCH  L=1u  W=1u
  18. M23   D1  G3  S1  B1  NCH  L=1u  W=1u
  19. M233   D1  G3  S1  B1  NCH  L=1u  W=1u
复制代码
{:3_183:}
   

论坛徽章:
0
7 [报告]
发表于 2014-04-24 14:29 |只看该作者
这问题也不难

论坛徽章:
0
8 [报告]
发表于 2014-04-24 14:32 |只看该作者
你至少应该弄一个测试文件上来,不是吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP