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

cup*_*kob 126 linux terminal character count

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

Cas*_*bel 173

这个怎么样:

fgrep -o f <file> | wc -l
Run Code Online (Sandbox Code Playgroud)

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

  • 要计算几个字符,例如`a`,`b`和`c`,请使用`egrep`:`egrep -o'a | b | c'<file> | wc -l`. (3认同)

use*_*553 63

甚至更快:

tr -cd f < file | wc -c
Run Code Online (Sandbox Code Playgroud)

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

real   0m0.089s
user   0m0.057s
sys    0m0.027s
Run Code Online (Sandbox Code Playgroud)

时间Vereb回答有echo,cat,trbc相同的文件:

real   0m0.168s
user   0m0.059s
sys    0m0.115s
Run Code Online (Sandbox Code Playgroud)

时间罗布Hruska的回答有tr,sedwc为同一个文件:

real   0m0.465s
user   0m0.411s
sys    0m0.080s
Run Code Online (Sandbox Code Playgroud)

时间Jefromi答案与fgrepwc相同的文件:

real   0m0.522s
user   0m0.477s
sys    0m0.023s 
Run Code Online (Sandbox Code Playgroud)

  • 计算几个字符,例如`a`,`b`和`c`:`tr -cd abc <file | wc -l`. (3认同)

Ver*_*reb 9

echo $(cat <file>  | wc -c) - $(cat <file>  | tr -d 'A' | wc -c) | bc
Run Code Online (Sandbox Code Playgroud)

A是角色

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

real   0m0.168s
user   0m0.059s
sys    0m0.115s
Run Code Online (Sandbox Code Playgroud)


小智 6

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

grep -c 'f' myfile
Run Code Online (Sandbox Code Playgroud)

但是,它会将同一行中多次出现的'f'计为单个匹配.