Answers:
这个怎么样:
fgrep -o f <file> | wc -l
注意:除了更容易记住/复制和自定义之外,这比Vereb的答案快大约三倍(对不起,编辑!使第一个测试失败)。
\r
或\n
字符,此功能将无效。的tr -cd f
回答不工作了点。
a
,b
与c
使用egrep
:egrep -o 'a|b|c' <file> | wc -l
。
wc -c
在tr
答案中使用:由于grep
逐行输出,wc
会将行尾计为字符(因此,字符数加倍)。
\r
,但是要计数\n
为什么不只使用wc -l
?
甚至更快:
tr -cd f < file | wc -c
该命令的时间为 4.9 MB,出现1100000个字符时出现以下命令:
real 0m0.089s
user 0m0.057s
sys 0m0.027s
时间Vereb答案有echo
,cat
,tr
和bc
相同的文件:
real 0m0.168s
user 0m0.059s
sys 0m0.115s
时间罗布Hruska的回答有tr
,sed
并wc
为同一个文件:
real 0m0.465s
user 0m0.411s
sys 0m0.080s
时间Jefromi答案与fgrep
和wc
相同的文件:
real 0m0.522s
user 0m0.477s
sys 0m0.023s
a
,b
和c
:tr -cd abc < file | wc -l
。
tr -cd abc < file | wc -c
代替
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
cat
s,将文件名作为wc
and 的参数,则速度会提高三分之一tr
。
stdin
,但是可以通过管道而不是cat
ed 来读取:tr -d 'A' < <file> | wc ...