是否有任何方式在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回复echocattrbc同一档案的时间:

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

Rob Hruska用同一文件回复sedwcfgrep的时间:

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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top