считайте определенное слово в строке в ударе

у меня есть переменная такой как "1,2,3,4"

я хочу к количеству запятых в этом тексте в ударе

какая-либо идея?

благодарит справка

6
задан soField 2 February 2010 в 09:27
поделиться

6 ответов

Это сделает то, что вы хотите:

echo "1,2,3" | tr -cd ',' | wc -c
7
ответ дан 10 December 2019 в 02:47
поделиться

Изолируйте запятые на линию, графические линии:

echo "$VAR"|grep -o ,|wc -l
1
ответ дан 10 December 2019 в 02:47
поделиться

С верхушки головы, используя чистый bash:

var="1,2,3,4"
temp=${var//[^,]/}
echo ${#temp}
1
ответ дан 10 December 2019 в 02:47
поделиться

Очень просто с awk

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

с просто оболочкой

$ s="1,2,3,4"
$ IFS=","
$ set -- $s
$ echo $(($#-1))
3
0
ответ дан 10 December 2019 в 02:47
поделиться

Чисто bash-решение без внешних программ:

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

Примечание: Это уничтожает ваши параметры позиционирования.

0
ответ дан 10 December 2019 в 02:47
поделиться

Другим чистым раствором Bash:

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

выводят «10» со строкой, показанной.

0
ответ дан 10 December 2019 в 02:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: