提取版本号子字符串

时间:2013-03-26 00:23:20

标签: sed grep substring vmware-workstation

我有这个:

Product Name         Product Version     
==================== ====================
vmware-workstation   9.0.2.1031769

我可以通过以下内容获取vmware-workstation部分:

$ vmware-installer -l | grep -Po "(?=v)[^ ]*(?= )"

如何获取版本号部分(没有构建,仅表示9.0.2)?

3 个答案:

答案 0 :(得分:1)

$ vmware-installer -l | grep -Po "^v\S+\s+\K\d+\.\d+\.\d+"
9.0.2

$ vmware-installer -l | grep -Po "(?:\d+\.){2}\d+"
9.0.2

这个:

(?:)

避免不需要捕获群组

答案 1 :(得分:1)

使用sed:

vmware-installer -l | sed -n 's/[^ ]* *\(.*\)\.[0-9]*/\1/p'

答案 2 :(得分:1)

使用grep执行此操作的另一种方法:

vmware-installer -l | grep -Po "(\d+\.){2}\d+"

相关问题