免费注册 查看新帖 |

Chinaunix

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

求助大神,小弟写了个删除重复行的程序,但不知道哪里出错了。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-03-13 17:44 |只看该作者 |倒序浏览
本帖最后由 yanglc2013 于 2013-03-13 17:56 编辑

红色矩形和蓝色矩形的内容完全相同 才算重复。

  1. #!/usr/bin/perl
  2. open(IN,$ARGV[0]);
  3. open(OUT,">$ARGV[1]");
  4. while(<IN>){
  5. chomp;
  6. if ( /^\>.*/){              
  7. $hash{$a_}="";             #如果匹配存入哈希。
  8. $spin=0;                        #假设一个开关
  9. }
  10. if (exists($hash{$a_})){    #往下读取数据时,发现已经存在,则开关为0
  11. $spin=0;
  12. } else {
  13. $spin=1
  14. }
  15. print $hash{$a_} if ($spin) #输出,如果开关为真。
  16. }
复制代码

论坛徽章:
6
卯兔
日期:2013-11-26 14:52:02丑牛
日期:2014-02-19 18:01:25卯兔
日期:2014-05-20 20:34:06白羊座
日期:2014-05-23 13:39:232015亚冠之大阪钢巴
日期:2015-08-07 20:57:582015亚冠之大阪钢巴
日期:2015-09-02 14:09:09
2 [报告]
发表于 2013-03-13 18:15 |只看该作者
  1. use strict;
复制代码
回复 1# yanglc2013


   

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
3 [报告]
发表于 2013-03-14 08:53 |只看该作者
如果:
红色矩形和蓝色矩形的内容完全相同 才算重复??
  1. #!/usr/bin/perl
  2. my %h;
  3. while (<DATA>){
  4.     my $l = $_ . <DATA>;
  5.     print $l unless $h{$l}++;
  6. }
  7. __DATA__
  8. >a123
  9. ABCDEFG
  10. >a124
  11. ABCDEFG
  12. >b234
  13. BCDEFGH
  14. >b234
  15. BCDEFGH
  16. >c345
  17. CDEFGHI
复制代码
  1. >a123
  2. ABCDEFG
  3. >a124
  4. ABCDEFG
  5. >b234
  6. BCDEFGH
  7. >c345
  8. CDEFGHI
复制代码

论坛徽章:
0
4 [报告]
发表于 2013-03-14 09:01 |只看该作者
$hash{$1} 就搞定了如果完全相同
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP