如何在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