Grep

通過 grepping rpm -qi 的輸出提取軟體包版本package-namep一個Cķ一個G和−n一個米和package-name用正則表達式

  • August 2, 2021

為什麼正則表達式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)

引用自:https://unix.stackexchange.com/questions/662981