1. ホーム
  2. bash

[解決済み] Bashを使って文字列中の文字列の出現回数を数える。

2022-05-10 13:37:30

質問

を数える必要があります。 文字列中のある文字の出現回数 をBashで使用します。

次の例では、charが(例えば)であるとき t を使用すると、それ echo s の正しい出現回数は tvar が、カンマやセミコロンの場合はゼロと出力されます。

var = "text,text,text,text" 
num = `expr match $var [,]`
echo "$num"

解決方法は?

私なら次のようにします。 awk コマンドを使用します。

string="text,text,text,text"
char=","
awk -F"${char}" '{print NF-1}' <<< "${string}"

で文字列を分割しています。 $char を表示し、結果のフィールドの数から1を引いたものを表示します。

お使いのシェルが <<< 演算子を使用します。 echo :

echo "${string}" | awk -F"${char}" '{print NF-1}'