系统相关
首页 > 系统相关> > shell从字符串中提取子串(正则表达式)

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没有只显示匹配部分的功能,会显示整行,所以采用的思路是将整行替换为子串,比较麻烦。

标签:子串,shell,grep,x86,正则表达式,sed,libgcc,64,rpm
来源: https://www.cnblogs.com/jmliao/p/11808592.html