暴走的指压师

为何中年妇女对14岁正太不理不睬?28岁大妈是如何保持14岁身材与脸颊?三无蓝毛究竟身在何处?为何少年抛弃妹子去寻找基友的菊花,大妈抛弃正太去和眼镜妹百合? 一切的一切,请看《Q ヱヴァンゲリヲン新劇場版:Q 》
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

UNIX/Linux里统计文件里某个字符出现的次数(转)

Posted on 2011-05-04 11:32  晓彻  阅读(1873)  评论(0编辑  收藏  举报

问题:

 UNIX/Linux里如何统计文件里某个字符出现的次数?例如在文件mydoc.txt中,字符A出现了几次?

解答:

 perl -e 'while(<>){$count+= s/A//g;} print “$countn”;' filename

解释:

 perl –e ‘xxxxx……’ 表示执行单引号中的指令

filename 表示要处理的对象是filename,也就是我们需要统计的文件

while(<>):每次读出文件的一行,直到文件结束。读取出来的内容放入默认变量$_中。

s/A//g:把默认变量($_,就是上面读出来的)中的A字符全部(g)替换为空。这个语句返回的结果是替换成功的次数。

$count+ = s/A//g:把替换成功的次数记录在$count中。

Print $count: 打印总的次数

把以上放在一起就是:每次读取文件中的一行,计算其中字符A出现的次数,并累加到变量$count中。最后打印出来。

如果想统计其他的字符,直接修改A为需要统计的就可以了。

更进一步:

如果要统计各个字符出现次数,如何实现?

解答:

perl -e '$/=undef;$_=<>; printf "$&:%dn", s/$&//g while /S/;' filename

解释:

 建议参考perl文档中perlvar部分。