• ベストアンサー

シェルスクリプトの変数について

表題の件について質問させていただきます。 シェルスクリプト内であるプログラムを走らせて No is 2 という標準出力が得られたとします。 そのなかの2という文字を変数につめたいのですがなかなかうまくいきません。 良い方法をご存知の方ご教授よろしくお願いします。

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

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

おっと, s/[^0-9]//g です. g を忘れてました. というか, これなら no=`echo $str | tr -cd 0-9` でよかったような気がする.

runjump
質問者

お礼

本当にありがとうこざいました。 正規表現の便利さを思い知りました。 これから勉強していきたいと思います。

その他の回答 (2)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.3

OSがLinuxということはGNU grep が使えるでしょうから、 grep -o '[0-9]\+' でもとれると思います。 参考まで。

runjump
質問者

お礼

ご回答ありがとうございます。 そのような方法もあるのですね。 勉強になりました。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

str='No is 2' no=`echo $str|sed -e 's/[^0-9]//'` で数字のところだけ残るはずですが.

runjump
質問者

お礼

素早いご回答本当にありがとうございます。 実際は Abzhal Karten = 1 という文字列から1という情報を取り出したいのですが 教えていただいた方法を使うと bzhal Karten = 1 という風になってしまいます。 教えていただいたsedというコマンドを調べてみても、何も問題はないと思うのですが・・・