计算文本中大多数出现的字符

时间:2013-12-24 10:46:11

标签: linux bash shell

我想知道有没有办法从文本中获取最多的字符?像前5或10一样。阅读所有的字符都没问题,但我遇到了这个问题。 谢谢你的关注

2 个答案:

答案 0 :(得分:2)

您可以使用shell实用程序:

grep -o . filename | sort | uniq -c | sort -nr

将按降序给出输入中出现的字符数。

将结果传递给head以获得前5名或前10名。

例如,

$ echo "The quick brown fox jumps over the lazy dog" | grep -o . | sort | uniq -c | sort -nr
      8  
      4 o
      3 e
      2 u
      2 r
      2 h
      1 z
      1 y
      1 x
      1 w
      1 v
      1 T
      1 t
      1 s
      1 q
      1 p
      1 n
      1 m
      1 l
      1 k
      1 j
      1 i
      1 g
      1 f
      1 d
      1 c
      1 b
      1 a

如果您希望计数不区分大小写,可以插入tr管道:

grep -o . filename | tr '[:upper:]' '[:lower:]' | sort | uniq -c | sort -nr

答案 1 :(得分:2)

您也可以使用fold

fold -w1 filename | sort | uniq -c | sort -nr