获取rpm软件包中软件名称
球baba 2023-04-15 16:00:00
rpm
awk
最近要对不同版本的linux系统通过rpm安装的软件包进行对比,直接获取的rpm包是带版本号的,用excel进行对比会因为存在版本不一致的情况导致匹配不上。
网上搜到这篇《提取rpm包的文件名》
rpm -qa | awk -F. '{print substr($1,0,length($1)-2)}'
1
文章中提到的这个命令测试下来能去除90%以上的版本号,但总归有几个看上去是没弄干净。
虽然不完美,但打开了思路,除了用小数点外,是不是用“-”更加合适呢?
结合rpm包的命名规则来看
name-version-release.os.arch.rpm
软件名称-版本号-发布次数.适合linux系统.硬件平台.rpm
用“-”进行分割,去掉最后两列的内容之后,就只剩下所需的软件名称了。
不得不感叹awk的强大,本来想着是不是要用python,但awk就能直接搞定了。
rpm -qa | awk -F- 'BEGIN{FS="-";OFS="-"}{$NF="";$(NF-1)=""; print substr($0,0,length($0)-2)}'
1
🌻🌻🌻