shell從字符串中提取子串(正則表達式)


通過試驗,可以通過grep、sed兩種方式實現。

假設需要提取libgcc-4.8.5-4.h5.x86_64.rpm中的版本號。

grep

echo "libgcc-4.8.5-4.h5.x86_64.rpm" | grep -Eo "[0-9]+\.[0-9]+.*x86_64"

grep的-o選項,可以只打印匹配的部分,否則會打印整行。

sed

echo "libgcc-4.8.5-4.h5.x86_64.rpm" | sed -r "s/libgcc-([0-9]+\.[0-9]+.*)\.rpm/\1/g"

sed使用\1反向引用前面匹配的組。

但是sed沒有只顯示匹配部分的功能,會顯示整行,所以采用的思路是將整行替換為子串,比較麻煩。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM