如何在bash中查找单词的所有元音?查找单词中的元音数量
grep -o "a" <<<$1 | wc l
该命令只找到a
,我想找到aeiou
。
例如:
- 为
car
我想要的输出为1
- 为
computer
我想要的输出为3
如何在bash中查找单词的所有元音?查找单词中的元音数量
grep -o "a" <<<$1 | wc l
该命令只找到a
,我想找到aeiou
。
例如:
car
我想要的输出为1
computer
我想要的输出为3
尝试:
echo "computer" | awk '{print gsub(/[aeiou]/,"")}'
所以我正在使用echo
她E要打印字,发送它的标准输出到awk
通过管(|
)作为标准输入,则与空字符串(""
)执行的信a
,e
,i
,o
全局替换,u
。
由于gsub
返回执行的替换计数,它告诉我们字符串中有多少元音字母。
您可以结合-o
与wc -l
(只保留匹配),并用括号表达式匹配所有元音:
$ grep -o '[aeiou]' <<< car | wc -l
1
$ grep -o '[aeiou]' <<< computer | wc -l
3
为函数(注意引号$1
防止字的拆分和路径扩展):
vowcount() { grep -o '[aeiou]' <<< "$1" | wc -l; }
一样使用
$ vowcount alphabet
3
的bash方法与GNU expr
命令:
输入变量:
v1="computer"
v2="car"
expr length "${v1//[^aeuoi]}"
3
expr length "${v2//[^aeuoi]}"
1
${v2//[^aeuoi]}
- 更换/移除所有非元音字符
expr length STRING
- 测定STRING的长度
更兼容的变化将如下所示:
vowels="${v1//[^aeuoi]}"
echo "${#vowels}"
3
我想你正在寻找一种叫做“正则表达式”的东西 - GNU grep支持它们。 – mustaccio
你有什么尝试? – hek2mgl