计算纯文本文件中char的出现次数

时间:2009-10-21 20:56:49

标签: linux count terminal character

在linux / terminal下有什么方法可以计算char f在纯文本文件中出现的次数吗?

5 个答案:

答案 0 :(得分:171)

这个怎么样:

fgrep -o f <file> | wc -l

注意:除了更容易记忆/复制和自定义之外,这比Vereb的回答快三倍(抱歉,编辑!拙劣的第一次测试)。

答案 1 :(得分:62)

更快:

tr -cd f < file | wc -c

此命令的时间,其中包含4.9 MB和1100000次搜索字符的文件:

real   0m0.089s
user   0m0.057s
sys    0m0.027s

Vereb对同一档案的echocattrbc回答的时间:

real   0m0.168s
user   0m0.059s
sys    0m0.115s

Rob Hruska回答trsedwc同一档案的时间:

real   0m0.465s
user   0m0.411s
sys    0m0.080s

Jefromi回复fgrepwc同一档案的时间:

real   0m0.522s
user   0m0.477s
sys    0m0.023s 

答案 2 :(得分:8)

echo $(cat <file>  | wc -c) - $(cat <file>  | tr -d 'A' | wc -c) | bc

其中A是角色

此命令的时间是一个文件,其中包含4.9 MB和1100000次搜索字符:

real   0m0.168s
user   0m0.059s
sys    0m0.115s

答案 3 :(得分:6)

如果您需要做的只是计算包含角色的行数,这将有效:

grep -c 'f' myfile

但是,它会计算同一行中多次出现的'f'与单个匹配。

答案 4 :(得分:3)

tr -d '\n' < file | sed 's/A/A\n/g' | wc -l

用您的角色替换两次出现的“A”,并用输入文件替换“file”。

  • tr -d '\n' < file:删除换行符
  • sed 's/A/A\n/g:在每次出现“A”
  • 后添加换行符
  • wc -l:计算行数

示例:

$ cat file
abcdefgabcdefgababababbbba


1234gabca

$ tr -d '\n' < file | sed 's/a/a\n/g' | wc -l
9