Bash
使用 bash 僅提取包名稱的版本部分
我想從包名中只提取包的版本。假設我有一個
var
包含包名的變數(例如:)var="nfs-utils-1.2.6-6.fc17.i686.rpm"
。提取的字元串是1.2.6-6
. 用於解析的方法可以是任何東西(regex、awk、cut)。編輯:在上面的範例中,我實際上想提取
1.2.6
這不是很便攜,但對於這種特定情況,這
grep
是可行的:echo $var | egrep -o '[0-9].*-[0-9]' 1.2.6-6
正如 thrig 所說,如果您在安裝這些軟體包的同一系統上提取值,您可以直接向 RPM 詢問版本:
ver=$(rpm --queryformat="%{VERSION}" -q nfs-utils)