首页 > 解决方案 > bash + 如何从 rpm 捕获版本

问题描述

这就是我尝试获取 Kafka 版本的方式

rpm -qa | grep "^kafka_"
kafka_2_6_5_0_292-1.0.0.2.6.5.0-292.noarch

Kafka 版本是 1.0 ,所以我做了以下以削减 Kafka 版本

 rpm -qa | grep "^kafka_" | sed s'/-/ /g' | awk '{print $2}' | cut -c 1-3
 1.0              <-----   results 

上面的cli似乎没有那么优雅和冗长的语法

我们可以做得更好吗,也许使用 Perl 或 Python 一个线性命令?

标签: pythonperlawksedgrep

解决方案


您可以使用单个awk

rpm -qa |
awk -F- '/^kafka_/ && split($2, a, /\./) >= 1 {print a[1] "." a[2]}'

1.0

推荐阅读