電子書籍の厳選無料作品が豊富!

ちょっと説明が難しいのですが

aaa = bbb

こういう文字列の右側のbbbを取り出したいのですが可能ですか?
全てこのようなら問題ないのですが、前後のスペースに問題があります

_aaa = bbb



aaa=bbb

aaa =__bbb
アンダーバーはスペースのかわりです。

のように前後にスペースが1つ2つ入っていたり抜けていたりします。

aaa = bbb
だったら
i=`echo | sed 's/aaa\ =\ //'`
のようにして取得できていますが、その他の処理がうまくできません
そもそもシェルスクリプトでこのような処理は無理なのでしょうか?
perl ではできたのですができればシェルスクリプトで完結させたいのです。
よろしくお願いします。
使っているシェルはzshです。

A 回答 (1件)

前後の処理がよくわかりませんが、


挙げられている例を流用するのであればこんな感じです。

host$ echo ' aaa = bbb ' | sed -e 's/ *aaa *= *//'
bbb
host$

* は「1つ前にあるものの0回以上の繰り返し」を意味するので
上の例だと aaa の前と、= の前後であれば
何個スペースがあっても(0個でも)置換対象になります。

正規表現メモ
http://www.kt.rim.or.jp/~kbk/regex/regex.html
    • good
    • 0
この回答へのお礼

ありがとうございました。
正規表現の*の使い方を間違えていたようでした。
助かりました。

お礼日時:2008/08/21 20:02

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