Предполагая, что вы хотите посчитать количество гласных и согласных, и что оболочка равна bash
, как насчет:
word=abstemiously
vowels=$(echo $word | sed 's/[^aeiou]//g')
consonants=$(echo $word | sed 's/[aeiou]//g')
echo "${#word} characters"
echo "${#vowels} vowels"
echo "${#consonants} consonants"
Вывод:
12 characters
5 vowels
7 consonants
Выможет сжать обработку, и вы можете использовать tr
вместо sed
.Кроме того, в Bash 4.x есть, по крайней мере, операции подстановки в оболочке, которые могут быть использованы, поэтому вам вообще не нужно запускать внешнюю программу (например, tr
или sed
).Вам также нужно подумать о том, что происходит с пунктуацией, цифрами и пробелами (обычно это не буквы).Опять же, есть несколько способов справиться с такими проблемами.