免费注册 查看新帖 |

Chinaunix

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

chomp为什么无效? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-06-29 17:40 |只看该作者 |倒序浏览
数据文件
cat c629
http://www.baidu.com/index.html
http://www.baidu.com/1.html
http://post.baidu.com/index.html
http://mp3.baidu.com/index.html
http://www.baidu.com/3.html
http://post.baidu.com/2.html

最后一行是空格和tab。不是空白!

输出每行的长度
  1. #!/usr/bin/perl

  2. open(INFILE,"c629")||die "";
  3. my @array01=<INFILE>;

  4. foreach(@array01){
  5.     chomp($_);
  6. #if(length($_)) print "$_\n";
  7. my $len=rindex $_."\$","\$";
  8.     print "$len\n";
  9. }
  10. close(INFILE);
复制代码
chomp居然无效!!!!结果是
31
27
32
31
27
28
4



当然用awk可以很方便的完成。
  1. awk 'NF{print length($0);}' c629
复制代码
结果是:
31
27
32
31
27
28

论坛徽章:
0
2 [报告]
发表于 2010-06-29 17:55 |只看该作者
  1. perl -ne 'print length($_)-1;print "\n";' t.t
复制代码

论坛徽章:
0
3 [报告]
发表于 2010-06-29 18:26 |只看该作者
回复 2# toniz

木有用!

perl -ne 'print length($_)-1;print "\n";' c629
31
27
32
31
27
28
4

论坛徽章:
78
双子座
日期:2013-10-15 08:50:09天秤座
日期:2013-10-16 18:02:08白羊座
日期:2013-10-18 13:35:33天蝎座
日期:2013-10-18 13:37:06狮子座
日期:2013-10-18 13:40:31双子座
日期:2013-10-22 13:58:42戌狗
日期:2013-10-22 18:50:04CU十二周年纪念徽章
日期:2013-10-24 15:41:34巨蟹座
日期:2013-10-24 17:14:56处女座
日期:2013-10-24 17:15:30双子座
日期:2013-10-25 13:49:39午马
日期:2013-10-28 15:02:15
4 [报告]
发表于 2010-06-29 18:28 |只看该作者
chomp是做什么的?

论坛徽章:
0
5 [报告]
发表于 2010-06-29 18:58 |只看该作者
修改了一下:
perl -ne 'print length($_)."\n" unless(/^\s+$/)' c629

结果是
32
28
33
32
28
29

问题是我要把长度-1,该如何在单行内完成?

我不想用这种
perl -ne 'my $a=length($_)-1;print $a."\n" unless(/^\s+$/)' c629

因为如果有大量空行,就白白做了一次-1操作。

论坛徽章:
0
6 [报告]
发表于 2010-06-29 19:20 |只看该作者
The chomp() function only removes the last character if it is a newline. It will only remove a single newline per string.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP