go[^ ]+
を使用して、これら2つの文字列の内側を見つけたいですexpr
。出力は と に1.17.6
なり1.18-becaeea119
ます。
go version go1.17.6 linux/amd64
go version devel go1.18-becaeea119 Tue Dec 14 17:43:51 2021 +0000 linux/amd64
ただし、そのdevel
部分はオプションであり、 で適切に無視する方法がわかりませんexpr
。
expr "$(go version)" : ".*go version go\([^ ]*\) .*"
expr "$(go version)" : ".*go version devel go\([^ ]*\) .*"
通常の正規表現を使用すると、私は(?: devel)?
それを使用しますが、何らかの理由でexpr
サポートしていません。?
expr
1つのコマンドでこれを達成する方法はありますか?