2013-03-28 66 views
0

我有一個數組${myarr[@]}與字符串。 ${myarr[@]}基本上由行和每行的字組成。我需要計算這個數組中hello的出現次數。 我該怎麼做?如何計算BASH數組中的項出現次數?

+0

'grep的-c'可以工作 – fedorqui

+0

如果有在1行上是多個「hello」,grep -c會將其計爲1次。 – Tom

回答

2

試試這個:

for word in ${myarr[*]}; do 
    echo $word 
done | grep -c "hello" 
3

替代(無環路):

grep -o hello <<< ${myarr[*]} | wc -l 
+0

謝謝,真的很好,很乾淨的解決方案 – zhihong

2

無需外部程序:

count=0 
for word in ${myarr[*]}; do 
    if [[ $word =~ hello ]]; then 
     ((count++)) 
    fi 
done 

echo $count 
+1

大聲笑,這也會工作... :-)每個人都有他/她的喜好。有人抱怨純bash腳本比純awk慢。有時我們喜歡純粹的bash解決方案,爲了兼容性。 :-) – anishsane