计算某个字符串出现在较大字符串中的次数的最快方法是什么?我最好的猜测是用任何东西替换该字符串的所有实例,计算长度的差异并除以子字符串的长度,但这似乎相当慢,我需要分析大量数据.
如果我在Linux机器上执行以下grep:
$ ps -ef | grep bash
root      2286     1  0 Jun06 ?        00:03:15 /bin/bash /etc/init.d/zxy100wd
wmiller   6436  6429  0 Jun06 pts/0    00:00:01 bash
wmiller  10707  6429  0 Jun07 pts/1    00:00:00 bash
wmiller  10795  6429  0 Jun07 pts/2    00:00:00 bash
wmiller  16220  6436  0 06:55 pts/0    00:00:00 grep --color=auto bash
注意最后一行是报告grep本身,因为单词"bash"在args中为grep.
但是,如果相反我把[]放在"bash"中的任何字母周围,我得到:
$ ps -ef | grep ba[s]h
root      2286     1  0 Jun06 ?        00:03:15 /bin/bash /etc/init.d/zxy100wd
wmiller   6436  6429  0 Jun06 pts/0    00:00:01 bash
wmiller  10707  6429  0 Jun07 …