Linux 如何查找一个字符在bash字符串中出现的次数?

Linux 如何查找一个字符在bash字符串中出现的次数?,linux,bash,shell,terminal,Linux,Bash,Shell,Terminal,我在bash$str中有一个字符串 str="ayushmishraalightayushas" 我想找出字母'a'在字符串中出现的次数。这可以使用grep-opluswc实现: $ echo "ayushmishraalightayushas" | grep -o 'a' | wc -l 5 正如第一个grep-o所示: $ echo "ayushmishraalightayushas" | grep -o 'a' a a a a a 因为grep的-o选项会: -o、 --仅匹配 仅打

我在bash$str中有一个字符串

str="ayushmishraalightayushas"

我想找出字母'a'在字符串中出现的次数。

这可以使用
grep-o
plus
wc
实现:

$ echo "ayushmishraalightayushas" | grep -o 'a' | wc -l
5
正如第一个
grep-o
所示:

$ echo "ayushmishraalightayushas" | grep -o 'a'
a
a
a
a
a
因为grep的
-o
选项会:

-o、 --仅匹配

仅打印匹配行的匹配(非空)部分,每个部分 这种部件在单独的输出线上


然后,只需使用
wc-l
命令计算行数。

这可以使用
grep-o
plus
wc
完成:

$ echo "ayushmishraalightayushas" | grep -o 'a' | wc -l
5
正如第一个
grep-o
所示:

$ echo "ayushmishraalightayushas" | grep -o 'a'
a
a
a
a
a
因为grep的
-o
选项会:

-o、 --仅匹配

仅打印匹配行的匹配(非空)部分,每个部分 这种部件在单独的输出线上

然后,只需使用
wc-l
命令计算行数。

单向:

echo ayushmishraalightayushas | grep -o a | wc -l
单向:

echo ayushmishraalightayushas | grep -o a | wc -l

我认为,这种awk one liner最简单,可以在不需要多个管道命令的情况下获得此计数:

str='ayushmishraalightayushas'
awk -F a '{print NF-1}' <<< "$str"
5
str='Ayushmishraallightayushas'

awk-fa'{print NF-1}'这个awk单行程序是最简单的,我相信它可以在不需要多个管道命令的情况下获得此计数:

str='ayushmishraalightayushas'
awk -F a '{print NF-1}' <<< "$str"
5
str='Ayushmishraallightayushas'
awk-fa{print NF-1}并且,尽管接受的答案不被遵循。并且,尽管接受的答案不被遵循。