こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

こんにちは。
シェルスクリプトで文字列から特定の文字を抜き出し、
変数に入れたいのですが、うまくいきません。
申し訳ありませんが、アドバイスをお願いいたします。

文字列 $moji=aaa_bbb_ccc
(文字は変動します)
$a=aaa
$b=bbb
$c=ccc
と"_"毎に変数に代入したい。
echo $moji | awk -F_ '{print $2}'
で文字を標準出力に取り出すことはできるのですが、
そこから変数に代入する方法がいまいち分かりません。

投稿日時 - 2006-07-30 15:45:36

QNo.2308863

すぐに回答ほしいです

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

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}'`

投稿日時 - 2006-07-30 16:23:34

お礼

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

投稿日時 - 2006-07-30 16:30:50

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

xjd

いろいろなやり方がありますが、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

投稿日時 - 2006-07-30 16:24:42

お礼

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

投稿日時 - 2006-07-30 16:31:02

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

投稿日時 - 2006-07-30 16:02:17

あなたにオススメの質問