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サポートしていません。?
expr1つのコマンドでこれを達成する方法はありますか?