在bash中统计特定单词

时间:2010-02-02 09:27:30

标签: bash

我有变量,如“1,2,3,4”

我想用bash

中的本文中的逗号计数

任何想法?

感谢您的帮助

7 个答案:

答案 0 :(得分:7)

这将做你想要的:

echo "1,2,3" | tr -cd ',' | wc -c

答案 1 :(得分:1)

每行隔离逗号,计算行数:

echo "$VAR"|grep -o ,|wc -l

答案 2 :(得分:1)

使用纯粹的bash离开我的头顶:

var="1,2,3,4"
temp=${var//[^,]/}
echo ${#temp}

答案 3 :(得分:0)

纯粹的bash解决方案,没有外部程序:

$ X=1,2,3,4
$ count=$(( $(IFS=,; set -- $X; echo $#) - 1 ))
$ echo $count
3
$

注意:这会破坏您的位置参数。

答案 4 :(得分:0)

另一种纯粹的Bash解决方案:

var="bbb,1,2,3,4,a,b,qwerty,,,"
saveIFS="$IFS"
IFS=','
var=($var)x
IFS="$saveIFS"
echo $((${#var[@]} - 1))

将输出“10”并显示字符串。

答案 5 :(得分:0)

非常简单地使用awk

$ echo 1,2,3,4 | awk -F"," '{print NF-1}'
3

只有shell

$ s="1,2,3,4"
$ IFS=","
$ set -- $s
$ echo $(($#-1))
3

答案 6 :(得分:0)

echo '1,2,3' | grep -o ',' | wc -l