我想从以下字符串中获取版本号:
mk5-VCC.6.26.exported.sqsh
版本号是6.26
号码。到目前为止,我使用了一个sed命令如下:
echo "mk5-VCC.6.26.exported.sqsh" |
sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/'
如何删除最后一个点?
答案 0 :(得分:0)
您可以使用以下命令:
echo "mk5-VCC.6.26.exported.sqsh" | cut -d"." -f2,3
打印:
6.26
答案 1 :(得分:0)
使用sed
,您可以使用:
echo "mk5-VCC.6.26.exported.sqsh" | sed -e 's/^.*[.]\([0-9][.][0-9]*\).*$/\1/'
<强>输出强>
6.26
答案 2 :(得分:0)
使用Bash正则表达式:
#!/bin/bash
s='mk5-VCC.6.26.exported.sqsh'
[[ $s =~ [0-9]+\.[0-9]+ ]]
echo "$BASH_REMATCH"
使用grep:
echo "$s" |grep -o '[0-9]\+\.[0-9]\+'
答案 3 :(得分:0)
使用参数展开时,假设数字在第一个.
之后开始,并且后面有两个.
:
$ var='mk5-VCC.6.26.exported.sqsh'
$ var="${var#*.}"
$ echo $var
6.26.exported.sqsh
$ var="${var%.*.*}"
$ echo $var
6.26