• ベストアンサー

Cシェルで、文字列中(str)に、固定文字列(abc)の数を数える方法

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

質問者が選んだベストアンサー

  • ベストアンサー
  • t_nojiri
  • ベストアンサー率28% (595/2071)
回答No.1

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

gooidgwd
質問者

お礼

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

その他の回答 (2)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.3

>grepでは -oってのオプションがなさそうですが、 OSを書いてないので、てっきりLinuxだと思いましたが、違いましたか。 コマンドの仕様はOSによって違うので、OSを書かないと適切な回答は得られません。 Cシェル縛りというのも面倒ですね。もっと高機能なシェルを使えないのでしょうか? grep -o が無いとなると、面倒ですが、文字列からabcを削除していって、何回削除が成功するか数えるか、Perl等をつかうか(これもOSによって標準で入ってないかもしれませんが)。

gooidgwd
質問者

補足

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

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

echo "$str" | grep -o "$abc" | wc -l ですかね。

gooidgwd
質問者

補足

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

関連するQ&A