UNIX/Linux里统计文件里某个字符出现的次数(转)
时间:2011-05-04 来源:晓彻
问题:
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部分。
相关阅读 更多 +