- ベストアンサー
Cシェルで、文字列中(str)に、固定文字列(abc)の数を数える方法
Cシェルで、文字列中(str)に、固定文字列(abc)の数を数える方法を教えてください たとえば、 set str = abcdabceabcd set abc = abc str中に、abcを現れる数(3)を求める方法を教えてください Cシェルは詳しい方がいらっしゃいましたら、是非教えてお願いいたします
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
別に詳しいって訳でも無いですが、リダイレクトしてテンポラリファイルに出力してfgrep等で数えるのが簡単かなーと思いますけど。 http://okwave.jp/qa/q198863.html
その他の回答 (2)
- notnot
- ベストアンサー率47% (4900/10358)
回答No.3
>grepでは -oってのオプションがなさそうですが、 OSを書いてないので、てっきりLinuxだと思いましたが、違いましたか。 コマンドの仕様はOSによって違うので、OSを書かないと適切な回答は得られません。 Cシェル縛りというのも面倒ですね。もっと高機能なシェルを使えないのでしょうか? grep -o が無いとなると、面倒ですが、文字列からabcを削除していって、何回削除が成功するか数えるか、Perl等をつかうか(これもOSによって標準で入ってないかもしれませんが)。
質問者
補足
notnotさん ご回答ありがとうございました OSはソラリスですが、Cシェル限定なのですが、現在とりあえず実現できました。実現方法はちょっとめんどくさい、下記の通りです 1.元文字列中のabcを空白に置き換えする 2.元文字列の長さー置換後の文字列の長さ/abcの長さ 以上です
- notnot
- ベストアンサー率47% (4900/10358)
回答No.2
echo "$str" | grep -o "$abc" | wc -l ですかね。
質問者
補足
notnotさん ご回答、ありがとうございました grepでは -oってのオプションがなさそうですが、 詳しく説明してくれて、ありがたいです。
お礼
t_nojiriさん ご回答ありがとうございました ご提示されたURLのリンク先の内容はまったくわかりません。 そんな難しくないと思ってます。 どうもありがとうございました