正则表达式或在python中拆分shell awk等价物
发布时间:2020-12-14 05:58:45 所属栏目:百科 来源:网络整理
导读:我有一个代理版本文件,我需要解析以获取应用程序版本的详细信息. 版本文件/opt/app_folder/agent_version.txt的(示例)内容如下: Version: 10.2.4.110Pkg name: XXXX-10.2.4-Agent-Linux-x86_64Revision: 110Patch version: 23 我需要输出作为Version的第3个
我有一个代理版本文件,我需要解析以获取应用程序版本的详细信息.
版本文件/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]) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |