Grep
通過 grepping rpm -qi 的輸出提取軟體包版本package-namep一個Cķ一個G和−n一個米和package-name用正則表達式
為什麼正則表達式
rpm -qi rpm-build | grep -E [[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+$
返回? 正則表達式不應該與句點匹配
\.
嗎?如果是這樣,為什麼第一個匹配不是唯一返回的?
您沒有引用正則表達式,因此您的 shell 處理了兩個反斜杠。結果,
grep
看到了這個正則表達式:[[:digit:]]+.[[:digit:]]+.[[:digit:]]+$
which確實匹配。引用表達式:rpm -qi rpm-build | grep -E '[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+$'
如果您真的只是想要來自 的版本資訊
rpm -q
,請直接使用 請求它--queryformat
,並跳過 grep:version=$(rpm -q --queryformat '%{VERSION}' rpm-build)