计算单词中元音和辅音的数量

时间:2011-08-17 19:29:44

标签: unix shell scripting ubuntu

我想在shell脚本中计算一个单词中的元音和辅音的数量,但我不确定如何运行这个单词。谁能帮我? 到目前为止我所拥有的是:

#!/bin/bash

echo 'Give a word'

read word

case $word
in
        a*|e*|i*|o*|u*)
                vowels=&((klinker + 1 ))
        ;;
        *)
                consonants=&((medeklinker + 1 ))
        ;;
esac

echo $vowels
echo $consonants

4 个答案:

答案 0 :(得分:1)

假设你想要计算元音的数量和辅音的数量,并且shell是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中,shell中的替换操作可能是可用的,因此您根本不必运行外部程序(例如trsed)。您还需要考虑标点符号,数字和空格(一般来说,非字母)会发生什么。同样,有多种方法可以解决这些问题。

答案 1 :(得分:1)

vowels=`echo $word | tr -cd 'aeiou' | wc -c`

答案 2 :(得分:0)

只需使用bash:

letters=${word//[^[:alpha:]]/}     # remove all whitespace, punctuation, etc
cnsnnts=${letters//[aeiou]/}       # remove vowels
num_consonents=${#cnsnnts}
num_vowels=$(( ${#letters} - $num_consonents ))

答案 3 :(得分:0)

#A非常简单的计算元音和辅音的程序:

读取单词
v =`echo $ word | tr -cd'aeiou'| wc -c`
c =`echo $ word | tr -cd'bcdfghjklmnpqrstvwxyz'| wc -c`

echo“vowels = $ v”
echo“consonants = $ c”