アプリ版:「スタンプのみでお礼する」機能のリリースについて

Cシェルで、文字列中(str)に、固定文字列(abc)の数を数える方法を教えてください
たとえば、
set str = abcdabceabcd
set abc = abc
str中に、abcを現れる数(3)を求める方法を教えてください
Cシェルは詳しい方がいらっしゃいましたら、是非教えてお願いいたします

A 回答 (3件)

別に詳しいって訳でも無いですが、リダイレクトしてテンポラリファイルに出力してfgrep等で数えるのが簡単かなーと思いますけど。



http://oshiete.goo.ne.jp/qa/198863.html
    • good
    • 0
この回答へのお礼

t_nojiriさん
ご回答ありがとうございました
ご提示されたURLのリンク先の内容はまったくわかりません。
そんな難しくないと思ってます。
どうもありがとうございました

お礼日時:2010/05/19 18:57

>grepでは -oってのオプションがなさそうですが、



OSを書いてないので、てっきりLinuxだと思いましたが、違いましたか。
コマンドの仕様はOSによって違うので、OSを書かないと適切な回答は得られません。
Cシェル縛りというのも面倒ですね。もっと高機能なシェルを使えないのでしょうか?

grep -o が無いとなると、面倒ですが、文字列からabcを削除していって、何回削除が成功するか数えるか、Perl等をつかうか(これもOSによって標準で入ってないかもしれませんが)。

この回答への補足

notnotさん

ご回答ありがとうございました
OSはソラリスですが、Cシェル限定なのですが、現在とりあえず実現できました。実現方法はちょっとめんどくさい、下記の通りです
1.元文字列中のabcを空白に置き換えする
2.元文字列の長さー置換後の文字列の長さ/abcの長さ
以上です

補足日時:2010/05/20 16:25
    • good
    • 0

echo "$str" | grep -o "$abc" | wc -l


ですかね。

この回答への補足

notnotさん
ご回答、ありがとうございました
grepでは -oってのオプションがなさそうですが、
詳しく説明してくれて、ありがたいです。

補足日時:2010/05/19 18:54
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!