免费注册 查看新帖 |

Chinaunix

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

删除匹配行 (条件是一个数组不是单独的一个字符串) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-26 20:33 |只看该作者 |倒序浏览
本帖最后由 gis11rj 于 2011-12-26 21:07 编辑

形如 @a = (1 2 3 4 5 6 7 8 9 10 111  2222  54 4565  4546 4545465 52338 )很长
我有一个文件$file,其中有一个字段 $name 如果包含@a之一,就删除整行,,,,
我遍历@a数组 然后if(/pattern/) s/$line//g;可是输出的时候就会重复打印,怎样让结果不重复呢

my @filterWord = qw/1 2 3 4 5 6 7 8 9 10 111  2222  54 4565  4546 4545465 52338/;
           foreach my $element (@filterWord){
                   if($name =~ /$element/){
                           last;
                   }else{print RR $newLine . "\n";}
           }
怎样才可以不重复的输出啊,跪求答案啊                 

论坛徽章:
0
2 [报告]
发表于 2011-12-26 21:32 |只看该作者

回复 1# gis11rj
又建了个哈西弄出来了,自己帮顶,方法笨了点,还望能有高手指点,另寻它法

   

论坛徽章:
0
3 [报告]
发表于 2011-12-26 22:01 |只看该作者
最好传点数据片段上来会更直观点,这样还是对你的所求有些模糊...我能想到比较好的也就是建立一个hash方法

论坛徽章:
0
4 [报告]
发表于 2011-12-27 00:01 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
5 [报告]
发表于 2011-12-27 09:15 |只看该作者
回复 4# 芙蓉女侠
女侠就是女侠啊!呵呵。。。。。了然

   

论坛徽章:
0
6 [报告]
发表于 2011-12-27 09:55 |只看该作者
用grep不是挺好的嘛
print RR $newLine . "\n" unless grep /$name/,@filterWord;

论坛徽章:
0
7 [报告]
发表于 2011-12-27 14:17 |只看该作者
kurri 发表于 2011-12-27 09:55
用grep不是挺好的嘛
print RR $newLine . "\n" unless grep /$name/,@filterWord;


我并不是要匹配$name;而是,$name中匹配到@filterWord中任何一个。

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
8 [报告]
发表于 2011-12-27 15:51 |只看该作者
hash work fine

论坛徽章:
0
9 [报告]
发表于 2011-12-27 18:39 |只看该作者
回复 7# gis11rj
额。。。看反了
把 grep /$name/,@filterWord 换成 grep $name =~ /$_/,@filterWord 呢?
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP