我想go[^ ] 使用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在一個命令中實作這一點?
uj5u.com熱心網友回復:
利用
.*go version.* go\([^[:space:]]*\) .*
解釋
--------------------------------------------------------------------------------
.* any character (0 or more times)
--------------------------------------------------------------------------------
go version 'go version'
--------------------------------------------------------------------------------
.* any character (0 or more times)
--------------------------------------------------------------------------------
go ' go'
--------------------------------------------------------------------------------
\( group and capture to \1:
--------------------------------------------------------------------------------
[^[:space:]]* any character except: whitespace
characters (0 or more times)
--------------------------------------------------------------------------------
\) end of \1
--------------------------------------------------------------------------------
' '
--------------------------------------------------------------------------------
.* any character (0 or more times)
uj5u.com熱心網友回復:
那是你想要的嗎?
.*go version [a-w ]*go\([^ ]*\) .*
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/411034.html
標籤:
