【发布时间】:2018-07-08 07:53:39
【问题描述】:
我有一个代理版本文件,我需要对其进行解析以获取应用程序版本详细信息。
版本文件/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 的前三个数字和来自Release version 的数字。
例如:
Current Version: 10.2.4.23
所以,我使用下面的代码在 shell 中使用 awk 实现这一目标
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
【问题讨论】:
-
您应该包括使用
regex/split解决问题的 Python 努力...因为那是您的问题陈述.. bash/awk 解决方案只是额外信息.. -
@talz 从他问这个问题到现在才一个小时 - 至少给这个家伙几个小时,看看他得到什么答案,然后再选择一个!
-
@Sundeep ,我没有尝试太多......几乎到了“一点也不”的地步,因为我是 python 中的“非常” Noobie,不知道如何继续: )
标签: python regex bash awk split