【发布时间】:2013-11-04 13:43:47
【问题描述】:
我在 bash $str 中有一个字符串。
str="ayushmishraalightayushas"
我想找出字母 'a' 在字符串中出现的次数。
【问题讨论】:
-
还有stackoverflow.com/q/6741967/1983854,尽管不遵循公认的答案。
我在 bash $str 中有一个字符串。
str="ayushmishraalightayushas"
我想找出字母 'a' 在字符串中出现的次数。
【问题讨论】:
这可以使用grep -o 加上wc 来完成:
$ echo "ayushmishraalightayushas" | grep -o 'a' | wc -l
5
如第一个 grep -o 所示:
$ echo "ayushmishraalightayushas" | grep -o 'a'
a
a
a
a
a
因为 grep 的 -o 选项可以:
-o, --only-matching
只打印匹配行的匹配(非空)部分,每个 这样的部分在单独的输出行上。
然后只需使用wc -l 命令计算行数即可。
【讨论】:
一种方式:
echo ayushmishraalightayushas | grep -o a | wc -l
【讨论】:
我认为这种 awk 单行程序最简单,无需多个管道命令即可获得此计数:
str='ayushmishraalightayushas'
awk -F a '{print NF-1}' <<< "$str"
5
【讨论】: