LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1959|回复: 9

如何统计一个文件中每个字母各数字的出现次数?

[复制链接]
发表于 2006-10-16 15:55:08 | 显示全部楼层 |阅读模式
假设一个文件中为数字的字母的序列,如何统计每个数字和字母的出现次数

统计一个我还能行,可是每个字母和数字怎么办呢???
发表于 2006-10-16 18:23:06 | 显示全部楼层
你一个可以统计出来,每个和一个应该是同理的,只不过要么用正则表达式。要么用别的方法。
回复 支持 反对

使用道具 举报

发表于 2006-10-17 10:00:24 | 显示全部楼层
一个怎么统计?
回复 支持 反对

使用道具 举报

发表于 2006-10-17 18:18:07 | 显示全部楼层
我记得好像awk可以统计莫个字段中莫个词出现的次数。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-17 23:15:43 | 显示全部楼层
可偶就是不会做呀
回复 支持 反对

使用道具 举报

发表于 2006-10-17 23:58:27 | 显示全部楼层

  1. #!/usr/bin/awk -f
  2. BEGIN{FS="";i=1;}
  3. {for (j=1;j<=NF;j++){
  4.   for(k=1;k<i;k++){
  5.     if( a[k] == $j ){b[k]=b[k]+1;break}
  6.   }
  7.   if(k==i){a[i]=$j;b[i]=1;i++}
  8. }
  9. }
  10. END{for(k=1;k<i;k++){print a[k]":"b[k]}}
复制代码

统计所有字符出现的个数(除换行符), 统计数字和字母你再自己加点判断.
回复 支持 反对

使用道具 举报

发表于 2006-10-17 23:59:37 | 显示全部楼层
为数字的字母的序列
啥意思这是??
回复 支持 反对

使用道具 举报

发表于 2006-10-18 18:25:14 | 显示全部楼层
也许是"数字和字母"吧。不写错别字是一个好习惯。
回复 支持 反对

使用道具 举报

发表于 2006-10-24 04:58:41 | 显示全部楼层
  1. cat file | awk 'BEGIN{FS=""}{for(i=1;i<=NF;i++)print $i}' | sort | uniq -c
复制代码
回复 支持 反对

使用道具 举报

发表于 2006-10-24 23:36:40 | 显示全部楼层
这里不排除Perl吧。。。
  1. [0 No.2042 huan@huan ~/tmp]$ cat count.pl
  2. #! /usr/bin/perl -w
  3. while (<>) {
  4.     $seen{$_}++ foreach ( split( // ) );
  5. }
  6. foreach ( sort keys %seen){
  7.     print "$_ --> $seen{$_}\n";
  8. }
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表