正则表达式或在python中拆分shell awk等价物

我有一个代理版本文件,我需要解析以获取应用程序版本的详细信息.
版本文件/opt/app_folder/agent_version.txt的(示例)内容如下:

Version: 10.2.4.110
Pkg name: XXXX-10.2.4-Agent-Linux-x86_64
Revision: 110
Patch version: 23

我需要输出作为Version的第3个数字和Release版本的数字.
例如:

Current Version: 10.2.4.23

所以,我使用下面的代码来使用awk在shell中实现这一点

FILE=/opt/app_folder/agent_version.txt

my_ver=`awk -F[:.] '/Version/ {gsub(" ",""); print $2"."$3"."$4}' ${FILE}`
            OR
my_ver=`awk -F[-] '/Pkg/ {print $2}' ${FILE}`

my_patch=`awk -F[:.] '/version/ {gsub(" ",""); print $NF}' ${FILE}`
my_cur_ver="$my_ver.$my_patch"

echo $my_cur_ver
10.2.4.23

如何在Python中实现此结果?使用正则表达式或拆分或两者的组合?

我在RHEL 6.2 x86_64上使用Python 3.3

解决方法

假设txt保存文件内容,这将为您提供以下版本:

import re
version = re.findall("Version:\s+((?:\d+\.){3})",txt)[0] + re.findall("Patch version:\s+(\d+)",txt)[0]

或者如果您只想要一个正则表达式:

version = ''.join(re.findall("Version:\s+((?:\d+\.){3}).*Patch version:\s+(\d+)",txt,re.DOTALL)[0])

相关文章

正则替换html代码中img标签的src值在开发富文本信息在移动端...
正则表达式
AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它...
正则表达式是特殊的字符序列,利用事先定义好的特定字符以及...
Python界一名小学生,热心分享编程学习。
收集整理每周优质开发者内容,包括、、等方面。每周五定期发...