统计每行不同字符的个数

数据格式如下:
  1. NN        TT        NN        NN        AT        NN        AT        NN        NN        NN        AT        NN        NN        AA        NN        AT        NN
  2. GG        AA        GG        AA        AG        GG        AG        GG        GG        GG        AG        AG        AG        NN        AG        AG        GG
  3. NN        TT        NN        NN        TT        NN        TT        NN        NN        NN        TT        NN        NN        TT        NN        TT        NN
  4. AA        AG        AG        AG        AG        AG        AG        AA        AG        GG        AG        GG        AG        NN        AG        AG        AG
  5. AA        AG        AG        AG        AG        AG        AG        AG        GG        GG        AG        GG        AG        NN        AG        GG        AG
  6. GG        GG        GG        GG        GG        GG        GG        GG        GG        AG        GG        GG        GG        NN        GG        GG        GG
  7. GG        GG        GG        GG        GG        GG        GG        AG        AG        GG        GG        GG        GG        NN        GG        GG        GG
  8. NN        CC        NN        NN        CC        NN        CC        NN        NN        NN        CC        NN        NN        CC        NN        CT        NN
  9. TT        CT        CT        CT        CC        CT        CC        CT        CC        CT        CT        CC        CT        NN        CT        CC        CT
  10. NN        AG        NN        NN        AA        NN        AA        NN        NN        NN        AG        NN        NN        AG        NN        AA        NN
  11. TT        AT        AT        AT        AA        AT        AA        AT        AA        AT        AT        AA        AT        NN        AT        AA        AT
  12. GG        GT        GT        GT        TT        GT        TT        GG        GT        GG        GT        TT        GT        NN        GT        GT        GT
  13. NN        CC        NN        NN        CC        NN        CC        NN        NN        NN        CC        NN        NN        CC        NN        CC        NN
  14. AA        AG        AG        AG        GG        AG        GG        AA        AG        AA        AG        GG        AG        NN        AG        AG        GG
  15. GG        AG        AG        AG        AA        AG        AA        GG        AG        GG        AG        AA        AG        NN        AA        AG        AG
  16. GG        AG        AG        AG        AA        AG        AA        GG        AG        GG        AG        AA        AG        NN        AG        AG        AG
  17. NN        AA        NN        NN        AA        NN        AA        NN        NN        NN        AA        NN        NN        NN        NN        AA        NN
  18. CC        CC        CC        CC        CC        CC        CC        CC        CT        CC        CC        CC        CC        NN        CC        CC        CC
  19. NN        AG        NN        NN        GG        NN        GG        NN        NN        NN        AG        NN        NN        GG        NN        AG        NN
  20. TT        TT        TT        TT        TT        TT        TT        TT        CT        TT        TT        TT        TT        NN        TT        TT        TT
复制代码
每行最多有3种字母,现在需要统计每行每种字母出现次数,如第一行,输出结果为
  1. A:6,N:22,T:6
复制代码
,其他行一样

作者: sequencing   发布时间: 2011-06-15

  1. $ echo 'NN        TT        NN        NN        AT        NN        AT        N
  2. N        NN        NN        AT        NN        NN        AA        NN
  3. AT        NN'  | sed -e 's/[^ ]/& /g' | awk '{for(i=1;i<NF;i++){a[$i]++}}END{fo
  4. r(l in a)printf l":"a[l]","}'
  5. A:6,N:21,T:6,
复制代码

作者: liion631818   发布时间: 2011-06-15

  1. perl -ne 's/\s*//g;split //;map{$a{$_}++} @_;while(($k,$v)=each(%a)){print "$k:$v,"};print "\n";undef %a;'
复制代码

作者: springwind426   发布时间: 2011-06-15



QUOTE:
liion631818 发表于 2011-06-15 10:16




   

QUOTE:
sed -e 's/[^ ]/& /g'

&是什么意思?谢谢..

作者: horizonhyg   发布时间: 2011-06-15



QUOTE:
liion631818 发表于 2011-06-15 10:16




    多谢!

作者: sequencing   发布时间: 2011-06-15

回复 horizonhyg

& 引用之前匹配到的内容
  1. $ echo "abc123" | sed 's/[a-z]*/&--/'
  2. abc--123
复制代码

作者: liion631818   发布时间: 2011-06-15



QUOTE:
springwind426 发表于 2011-06-15 10:53




    高手!学习了

作者: sequencing   发布时间: 2011-06-15