bash-计算行中特定字符的数量

bash-计算行中特定字符的数量,bash,grep,Bash,Grep,想知道如何计算一行中的特定字符。 例如: Hey . My . Name . Is . Bash 用字符。应返回:4 我们被告知grep会有用,但找不到一个好办法 谢谢有很多方法 例如: $ echo "Hey . My . Name . Is . Bash" | grep -o "\." | wc -w 4 或使用双grep: $ echo "Hey . My . Name . Is . Bash" | grep -o "\." | grep -c "\." 4 有很多方法 例如: $

想知道如何计算一行中的特定字符。 例如:

Hey . My . Name . Is . Bash
用字符。应返回:4

我们被告知grep会有用,但找不到一个好办法

谢谢

有很多方法

例如:

$ echo "Hey . My . Name . Is . Bash" | grep -o "\." | wc -w
4
或使用双grep:

$ echo "Hey . My . Name . Is . Bash" | grep -o "\."  | grep -c "\."
4
有很多方法

例如:

$ echo "Hey . My . Name . Is . Bash" | grep -o "\." | wc -w
4
或使用双grep:

$ echo "Hey . My . Name . Is . Bash" | grep -o "\."  | grep -c "\."
4
尝试:

纯bash:

$ s="Hey . My . Name . Is . Bash"
$ m=${s//[^.]/}
$ echo ${#m}
4
还有一个:

$ tr -C -d [\.] <<< $s | wc -c
4
尝试:

纯bash:

$ s="Hey . My . Name . Is . Bash"
$ m=${s//[^.]/}
$ echo ${#m}
4
还有一个:

$ tr -C -d [\.] <<< $s | wc -c
4
$echo嘿。我的名称是Bash | tr-cd.|wc-m

我相信在这里使用tr更便宜。

$echo-Hey。我的名称是Bash | tr-cd.|wc-m

我相信在这里使用tr更便宜。

在纯bash中:

str="Hey . My . Name . Is . Bash"
len=${#str}
str=${str//./}
len2=${#str}

count=$((len-len2))

echo "There are $count '.' in '$str'"
工作原理:

${var\u name}扩展为变量var\u name的值的长度 ${var_name/./}替换所有出现的。按空字符串 试试这里:

在纯bash中:

str="Hey . My . Name . Is . Bash"
len=${#str}
str=${str//./}
len2=${#str}

count=$((len-len2))

echo "There are $count '.' in '$str'"
工作原理:

${var\u name}扩展为变量var\u name的值的长度 ${var_name/./}替换所有出现的。按空字符串
试试这里:

您不需要使用两个进程

如果要对一行中的特殊单个字符进行计数:

kent$  echo "Hey . My . Name . Is . Bash"|awk '{print split($0,a,".")-1}'
4
或:


你不需要用两个过程来完成

如果要对一行中的特殊单个字符进行计数:

kent$  echo "Hey . My . Name . Is . Bash"|awk '{print split($0,a,".")-1}'
4
或:


如何在名为word的字符串上使用此实现我想计算一个字符在其中出现多少次而不破坏原始字符串这是另一个小问题,如果我想将输出保存在一个参数中,例如amount,我将如何更改代码?amount=`echo-Hey。我的名称是Bash | tr-cd.|wc-m`如何在名为word的字符串上使用此实现我想计算一个字符在其中出现多少次而不破坏原始字符串只是另一个小问题,如果我想将输出保存在一个参数中,例如amount,我将如何更改代码?amount=` echo Hey。我的名称是Bash | tr-cd.|wc-m`感谢您发布该链接,这是一个非常棒的网站。帮了我很多谢谢你发布的链接,这是一个很好的网站。帮了我很多忙