1

How can I determine the number of characters in a variable?

FOO="blabla.bla.blabla.bla."
--check--
echo $FOO # 4 dot

FOO="..bla.bla.bla.blabla.bla."
--check--
echo $FOO # 7 dot
Benjamin W.
  • 46,058
  • 19
  • 106
  • 116
petr
  • 51
  • 1
  • 7
  • Here is your answer: http://stackoverflow.com/questions/1603566/count-occurrences-of-a-char-in-plain-text-file – Babblo Mar 07 '13 at 21:23

4 Answers4

1

You should try this:

echo ${#FOO} 

${#VARIABLE_NAME} gives you the lenght of a string. Read (its on top of the page)

hek2mgl
  • 152,036
  • 28
  • 249
  • 266
0
 awk -F. '{print NF-1}' <<<$FOO 

example:

kent$  FOO="blabla.bla.blabla.bla."   

kent$  awk -F. '{print NF-1}' <<<$FOO
4

kent$  FOO="..bla.bla.bla.blabla.bla."

kent$  awk -F. '{print NF-1}' <<<$FOO 
7
Kent
  • 189,393
  • 32
  • 233
  • 301
0

echo $FOO | tr -dc \\. | wc -c

Does that answer your question?

MeBa
  • 1
  • 1
  • somehow I do not work :-(( ... if [ "$(echo $FOO | tr -dc \\. | wc -c)" -gt "1" ]; then ... – petr Mar 07 '13 at 21:50
  • `export FOO="..bla.bla.bla.blabla.bla."; if [ "$(echo $FOO | tr -dc \\. | wc -c)" -gt "8" ]; then echo "more"; else echo "less"; fi` – MeBa Mar 07 '13 at 22:08
0

Strip the non-dots and count the length of the result.

 $ x=..bla.bla.bla.blabla.bla.
 $ _=${x//[^.]} count=${#_}; echo "$count"
7
 $ printf -v _ %s%n "${x//[^.]}" count; echo "$count"
7
ormaaj
  • 6,201
  • 29
  • 34