获取与正则表达式匹配的字符串的一部分

获取与正则表达式匹配的字符串的一部分

我正在编写一个 bash 脚本并尝试解析文件以获取软件版本。输出为:

Version 13.0.R7.0 - Built on Tue Feb 09 18:47:29 EST 2016

我希望能够使用正则表达式拉出13.0(我稍后会切断),并使用拉出。.0^1[0-9]\.0R7R[0-9]{1}

我知道如何匹配它们,我只是不知道如何将与正则表达式匹配的值放入变量中,这样的事情可能吗?

答案1

使用 GNU bash:

echo 'Version 13.0.R7.0 - Built on Tue Feb 09 18:47:29 EST 2016' | while IFS=" ." read -r a b c d rest; do echo $b $c $d; done

或者

while IFS=" ." read -r a b c d rest; do echo $b $c $d; done < filename

输出:

13 0 R7

相关内容