• ベストアンサー

文字列から特定の文字を抜き出す

こんにちは。 シェルスクリプトで文字列から特定の文字を抜き出し、 変数に入れたいのですが、うまくいきません。 申し訳ありませんが、アドバイスをお願いいたします。 文字列 $moji=aaa_bbb_ccc (文字は変動します) $a=aaa $b=bbb $c=ccc と"_"毎に変数に代入したい。 echo $moji | awk -F_ '{print $2}' で文字を標準出力に取り出すことはできるのですが、 そこから変数に代入する方法がいまいち分かりません。

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

  • ベストアンサー
  • pipipi523
  • ベストアンサー率40% (148/365)
回答No.2

Bシェルということで moji=aaa_bbb_ccc a=`echo $moji | awk -F_ '{print $1}'` b=`echo $moji | awk -F_ '{print $2}'` c=`echo $moji | awk -F_ '{print $2}'`

dars12
質問者

お礼

ありがとうございます。 よく考えたら変数を前に持ってきて代入すればよい話でしたね^^; 「`」と「'」を間違えておりエラーになっていました。 失礼いたしました。

その他の回答 (2)

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.3

いろいろなやり方がありますが、B-Shell で作ってみました。 参考にしてください。 $ cat test.sh #!/bin/sh str=aaa_bbb_ccc a=`echo $str | cut -d'_' -f1` b=`echo $str | cut -d'_' -f2` c=`echo $str | cut -d'_' -f3` echo $a echo $b echo $c $ ./test.sh aaa bbb ccc

dars12
質問者

お礼

ありがとうございます。 よく考えたら変数を前に持ってきて代入すればよい話でしたね^^; 「`」と「'」を間違えておりエラーになっていました。 失礼いたしました。

noname#147912
noname#147912
回答No.1

何シェル? 長い間やってないので、忘れたが set env a | cut -1 3 $moji echo $a これは間違ってるが、これみたいな感じだったとおもう。

関連するQ&A