计出现的一个焦炭用纯文本文件
题
是否有任何方式在linux/终端数,如何许多次char f发生在一个纯文本文件?
解决方案
这个怎么样:
fgrep -o f <file> | wc -l
注意:除了更容易记忆/复制和自定义之外,这比Vereb的回答快三倍(抱歉,编辑!拙劣的第一次测试)。
其他提示
更快:
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
Rob Hruska用同一文件回复sed
,wc
和fgrep
的时间:
real 0m0.465s
user 0m0.411s
sys 0m0.080s
Jefromi以<=>和<=>回答同一档案的时间:
real 0m0.522s
user 0m0.477s
sys 0m0.023s
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
如果您需要做的只是计算包含角色的行数,这将有效:
grep -c 'f' myfile
但是,它会计算同一行中多次出现的'f'与单个匹配。
tr -d '\n' < file | sed 's/A/A\n/g' | wc -l
取代两次出现的"一个"你的字符,并且"文件"与你输入文件。
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
不隶属于 StackOverflow