expr

bash の演算子 expr

文字列演算
string : regex
パターンマッチを実行する。 左右の項は文字列に変換され、 右項は (grep(1) の使う基本的な) 正規表現として扱われる。 右項には暗黙のうちに先頭に `^’ が自動的に付加され、 左項がその正規表現にマッチするかのテストが行われる。

マッチが成功した場合、 正規表現の一部が `\(‘ と ‘\)’ で囲われていれば、 : 演算子は string のうち、 副表現 (subexpression) にマッチした部分を返す。 それ以外の場合はマッチした部分の文字数が返される。

マッチに失敗した場合、 `\(‘ と `\)’ が使われていた場合にはナル文字列が、 そうでない場合には 0 が返される。

`\(‘ と `\)’ のペアのうち、最初のものだけが返り値に影響する。 それ以外のペアは、正規表現の演算子をグループ化するという意味だけを持つ。

他の expr と異なり、`+’ (1 つ以上)、`?’ (0 または 1)、`|’ (or 接続) もマッチング演算子として認識される。

文字列演算でつまづいた。>
<

ええと / でくくるって事は『 /123/ 』ってことかなぁ。と思ってたら。

そのままズバリ、こうでした。


[root@sv-n root]# expr 123 : "\(".*12.*"\)"
123


ふひ〜。