提取版本号子串
问题描述:
我有这样的:提取版本号子串
Product Name Product Version
==================== ====================
vmware-workstation 9.0.2.1031769
我可以用得到vmware-workstation
部分:
$ vmware-installer -l | grep -Po "(?=v)[^ ]*(?=)"
如何获得的版本号部分(不包括构建,这意味着刚刚9.0.2
)?
答
$ 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
这样的:没有必要
(?:)
避免捕获组
答
随着SED:
vmware-installer -l | sed -n 's/[^ ]* *\(.*\)\.[0-9]*/\1/p'
'(\ d + \。)+ \ d +'然后只使用捕获组? – Patashu 2013-03-26 00:27:43