免费注册 查看新帖 |

Chinaunix

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

版主帮我看个问题,谢谢 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-08-04 15:13 |只看该作者 |倒序浏览
change.conf内容如下:

  1. dong.hui        pptpd        "Dong.huI"        192.168.1.1
  2. wang.jing        pptpd        "Wang.jinG"        192.168.1.2
  3. zhang.wei        pptpd        "Zhang.weI"        192.168.1.3
  4. liu.mingfei        pptpd        "Liu.mingfeI"        192.168.1.4
  5. zhang.jin        pptpd        "Zhang.jiN"        192.168.1.5
  6. wang.zhi        pptpd        "Wang.zhI"        192.168.1.6
  7. sun.xiaojin        pptpd        "Sun.xiaojiN"        192.168.1.7
  8. li.qingsheng        pptpd        "Li.qingshenG"        192.168.1.8
  9. liu.yuhua        pptpd        "Liu.yuhuA"        192.168.1.9
  10. zhang.zhiping        pptpd        "Zhang.zhipinG"        192.168.1.10
复制代码
name.txt内容如下:

  1. liu.mingfei
  2. zhang.jin
  3. wang.zhi
  4. sun.xiaojin
  5. li.qingsheng
  6. liu.yuhua
  7. zhang.zhiping
复制代码
要实现的功能是:找出name.txt和change.conf中名字相同的

  1. #!/usr/bin/perl

  2. use warnings;
  3. use strict;

  4. open CONF,"change.conf" or die "change.conf:$!\n";
  5. open NAME,"name.txt" or die "name:$!\n";
  6. my @conf = <CONF>;
  7. my $name;
  8. while ($name=<NAME>){
  9.         chomp $name;
  10.         print "name = $name\n";
  11.         foreach (@conf){
  12.                 chomp;
  13.                 if (index($_, $name) >= 0){
  14.                         print "repeat $name \n";
  15.                 }else{
  16.                         print "name=$name, $_\n";
  17.                 }
  18.         }
  19. }
复制代码
我这里的运行结果很奇怪

  1. name = liu.mingfei
  2. , dong.huiingfeipptpd        "Dong.huI"        192.168.1.1
  3. , wang.jingngfeipptpd        "Wang.jinG"        192.168.1.2
  4. , zhang.weingfeipptpd        "Zhang.weI"        192.168.1.3
  5. , liu.mingfeifeipptpd        "Liu.mingfeI"        192.168.1.4
  6. , zhang.jinngfeipptpd        "Zhang.jiN"        192.168.1.5
  7. , wang.zhiingfeipptpd        "Wang.zhI"        192.168.1.6
  8. , sun.xiaojinfeipptpd        "Sun.xiaojiN"        192.168.1.7
  9. , li.qingshengeipptpd        "Li.qingshenG"        192.168.1.8
  10. , liu.yuhuangfeipptpd        "Liu.yuhuA"        192.168.1.9
  11. , zhang.zhiping        pptpd        "Zhang.zhipinG"        192.168.1.10
  12. name = zhang.jin
  13. , dong.hui.jin  pptpd        "Dong.huI"        192.168.1.1
  14. , wang.jingjin  pptpd        "Wang.jinG"        192.168.1.2
  15. , zhang.weijin  pptpd        "Zhang.weI"        192.168.1.3
  16. , liu.mingfei        pptpd        "Liu.mingfeI"        192.168.1.4
  17. , zhang.jinjin  pptpd        "Zhang.jiN"        192.168.1.5
  18. , wang.zhi.jin  pptpd        "Wang.zhI"        192.168.1.6
  19. , sun.xiaojin        pptpd        "Sun.xiaojiN"        192.168.1.7
  20. , li.qingsheng        pptpd        "Li.qingshenG"        192.168.1.8
  21. , liu.yuhuajin  pptpd        "Liu.yuhuA"        192.168.1.9
  22. , zhang.zhiping        pptpd        "Zhang.zhipinG"        192.168.1.10
  23. name = wang.zhi
  24. , dong.huizhi   pptpd        "Dong.huI"        192.168.1.1
  25. , wang.jinghi   pptpd        "Wang.jinG"        192.168.1.2
  26. , zhang.weihi   pptpd        "Zhang.weI"        192.168.1.3
  27. , liu.mingfei        pptpd        "Liu.mingfeI"        192.168.1.4
  28. , zhang.jinhi   pptpd        "Zhang.jiN"        192.168.1.5
  29. , wang.zhizhi   pptpd        "Wang.zhI"        192.168.1.6
  30. , sun.xiaojin        pptpd        "Sun.xiaojiN"        192.168.1.7
  31. , li.qingsheng        pptpd        "Li.qingshenG"        192.168.1.8
  32. , liu.yuhuahi   pptpd        "Liu.yuhuA"        192.168.1.9
  33. , zhang.zhiping        pptpd        "Zhang.zhipinG"        192.168.1.10
  34. name = sun.xiaojin
  35. , dong.huiiaojinpptpd        "Dong.huI"        192.168.1.1
  36. , wang.jingaojinpptpd        "Wang.jinG"        192.168.1.2
  37. , zhang.weiaojinpptpd        "Zhang.weI"        192.168.1.3
  38. , liu.mingfeijinpptpd        "Liu.mingfeI"        192.168.1.4
  39. , zhang.jinaojinpptpd        "Zhang.jiN"        192.168.1.5
  40. , wang.zhiiaojinpptpd        "Wang.zhI"        192.168.1.6
  41. , sun.xiaojinjinpptpd        "Sun.xiaojiN"        192.168.1.7
  42. , li.qingshenginpptpd        "Li.qingshenG"        192.168.1.8
  43. , liu.yuhuaaojinpptpd        "Liu.yuhuA"        192.168.1.9
  44. , zhang.zhiping        pptpd        "Zhang.zhipinG"        192.168.1.10
  45. name = li.qingsheng
  46. , dong.huingshenpptpd        "Dong.huI"        192.168.1.1
  47. , wang.jinggshenpptpd        "Wang.jinG"        192.168.1.2
  48. , zhang.weigshenpptpd        "Zhang.weI"        192.168.1.3
  49. , liu.mingfeihenpptpd        "Liu.mingfeI"        192.168.1.4
  50. , zhang.jingshenpptpd        "Zhang.jiN"        192.168.1.5
  51. , wang.zhingshenpptpd        "Wang.zhI"        192.168.1.6
  52. , sun.xiaojinhenpptpd        "Sun.xiaojiN"        192.168.1.7
  53. , li.qingshengenpptpd        "Li.qingshenG"        192.168.1.8
  54. , liu.yuhuagshenpptpd        "Liu.yuhuA"        192.168.1.9
  55. , zhang.zhipingnpptpd        "Zhang.zhipinG"        192.168.1.10
  56. name = liu.yuhua
  57. , dong.huiuhua  pptpd        "Dong.huI"        192.168.1.1
  58. , wang.jinghua  pptpd        "Wang.jinG"        192.168.1.2
  59. , zhang.weihua  pptpd        "Zhang.weI"        192.168.1.3
  60. , liu.mingfei        pptpd        "Liu.mingfeI"        192.168.1.4
  61. , zhang.jinhua  pptpd        "Zhang.jiN"        192.168.1.5
  62. , wang.zhiuhua  pptpd        "Wang.zhI"        192.168.1.6
  63. , sun.xiaojin        pptpd        "Sun.xiaojiN"        192.168.1.7
  64. , li.qingsheng        pptpd        "Li.qingshenG"        192.168.1.8
  65. , liu.yuhuahua  pptpd        "Liu.yuhuA"        192.168.1.9
  66. , zhang.zhiping        pptpd        "Zhang.zhipinG"        192.168.1.10
  67. name = zhang.zhiping
  68. name=zhang.zhiping , dong.hui        pptpd        "Dong.huI"        192.168.1.1
  69. name=zhang.zhiping , wang.jing        pptpd        "Wang.jinG"        192.168.1.2
  70. name=zhang.zhiping , zhang.wei        pptpd        "Zhang.weI"        192.168.1.3
  71. name=zhang.zhiping , liu.mingfei        pptpd        "Liu.mingfeI"        192.168.1.4
  72. name=zhang.zhiping , zhang.jin        pptpd        "Zhang.jiN"        192.168.1.5
  73. name=zhang.zhiping , wang.zhi        pptpd        "Wang.zhI"        192.168.1.6
  74. name=zhang.zhiping , sun.xiaojin        pptpd        "Sun.xiaojiN"        192.168.1.7
  75. name=zhang.zhiping , li.qingsheng        pptpd        "Li.qingshenG"        192.168.1.8
  76. name=zhang.zhiping , liu.yuhua        pptpd        "Liu.yuhuA"        192.168.1.9
  77. name=zhang.zhiping , zhang.zhiping        pptpd        "Zhang.zhipinG"        192.168.1.10
复制代码

论坛徽章:
0
2 [报告]
发表于 2011-08-04 15:14 |只看该作者
{:2_166:}这个是刚才另一个帖子中的问题衍生出来的,不理解

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
3 [报告]
发表于 2011-08-04 15:20 |只看该作者
回复 2# joneui


    每读一行name,循环一遍conf,所以输出lines of file-name × lines of file-conf 个结果

论坛徽章:
0
4 [报告]
发表于 2011-08-04 15:42 |只看该作者
回复 3# yinyuemi


    是这个逻辑,但是正确的输出应该是name=XXXX, XXXXXX,现在的输出除了最后一遍循环是正确的外,其它都不正确

论坛徽章:
0
5 [报告]
发表于 2011-08-04 18:47 |只看该作者
我已经知道是什么原因造成这里打印出错的了。因为在name.txt文件中,每行的换行是"\r\n",我看它的十六进制代码是0D 0A,通过chomp函数,只能去掉一个回车,所以字符串标量还是带有一个回车的。这就造成了打印出错。

论坛徽章:
0
6 [报告]
发表于 2011-08-04 18:48 |只看该作者
我已经知道是什么原因造成这里打印出错的了。因为在name.txt文件中,每行的换行是"\r\n",我看它的十六进制代码是0D 0A,通过chomp函数,只能去掉一个回车,所以字符串标量还是带有一个回车的。这就造成了打印出错。

论坛徽章:
0
7 [报告]
发表于 2011-08-04 18:51 |只看该作者
但是不知道要怎么去掉这个txt中的多出来的回来符,我后来是用vi一条一条输入的,有人知道吗?

论坛徽章:
6
15-16赛季CBA联赛之新疆
日期:2016-03-22 22:34:5915-16赛季CBA联赛之山东
日期:2016-04-11 09:08:41程序设计版块每日发帖之星
日期:2016-06-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-19 06:20:00每日论坛发贴之星
日期:2016-07-19 06:20:0015-16赛季CBA联赛之青岛
日期:2016-07-20 22:44:17
8 [报告]
发表于 2011-08-04 20:41 |只看该作者
s/\r//g;
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP