我有一个像这样的字符串结构bob-type-8.2-mp2-2017-93-43-11-65-48.spr
,只需要提取即可8.2-mp2-2017-93-43-11-65-48
。
这意味着在遇到第一个数值然后.spr
从中删除后,输出字符串应包含所有字符。
我怎样才能做到这一点?
试试这个:
echo "bob-type-8.2-mp2-2017-93-43-11-65-48.spr" | sed 's/^[^0-9]*//;s/\.[^.]*$//'
输出将是:
8.2-mp2-2017-93-43-11-65-48
说明:
sed使用模式's/pattern/replace_pattern/'
查找pattern
并替换为replace_pattern
因此,模式's/^[^0-9]*//'
从行首到第一个数字出现之前获取所有符号,并将其替换replace_pattern
为空(为空)。
下一步-删除扩展。我们可以使用相同的sed模式进行此操作's///'
。
s/\.[^.]*$//
-找到所有不在行.
尾$
的符号,并将其替换为空。
;
-设计模式。
为了更好地理解,您可以改用以下命令:
echo "bob-type-8.2-mp2-2017-93-43-11-65-48.spr" | sed -e 's/^[^0-9]*//' -e 's/\.[^.]*$//'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句