繁体   English   中英

使用命令行或 bash 从 yum 存储库文件中的文件中提取第二个单词

[英]Extract second word from a file in yum repository file using command line or bash

我想从文本文件(yum 存储库文件)中提取一个特定的文件路径文件内容如下所示

[rhel-8-for-x86_64-baseos-rpms]
name = Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)
baseurl = https://myhost.com
enabled = 1
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
sslclientkey = /etc/pki/entitlement/60472949067-key.pem
sslclientcert = /etc/pki/entitlement/604712349067.pem
metadata_expire = 1
enabled_metadata = 1

[rhel-8-for-x86_64-appstream-rpms]
name = Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)
baseurl = https://myhost.com
enabled = 1
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
sslclientkey = /etc/pki/entitlement/6047297349067-key.pem
sslclientcert = /etc/pki/entitlement/6047297349067.pem
metadata_expire = 1
enabled_metadata = 1

我的要求是通过命令行或脚本提取 rhel-8-for-x86_64-appstream-rpm 和 rhel-8-for-x86_64-baseos-rpm 的 sslclinetkey 路径

任何帮助,将不胜感激

更新

我试过这种方式,但我收到了多个条目

cat /etc/yum.repos.d/redhat.repo  | grep sslclientkey | awk '{print $3}'
/etc/pki/entitlement/2627848977587647846-key.pem
/etc/pki/entitlement/7675461792121821585-key.pem
/etc/pki/entitlement/3236342435348109549-key.pem
/etc/pki/entitlement/60472974412349067-key.pem
/etc/pki/entitlement/3236342435348109549-key.pem
/etc/pki/entitlement/60472974412349067-key.pem

但我只需要 rhel-8-for-x86_64-appstream-rpm 和 rhel-8-for-x86_64-baseos-rpm

awk -F' = ' '/sslclientcert/{print $2}' file 
# or 
awk '/sslclientcert/{print $3}' file 

/etc/pki/entitlement/604712349067.pem
/etc/pki/entitlement/6047297349067.pem

awk -F' = ' '/\[.*\]/ {printf "%s ", $1} /sslclientcert/{print $2}' file 
[rhel-8-for-x86_64-baseos-rpms] /etc/pki/entitlement/604712349067.pem
[rhel-8-for-x86_64-appstream-rpms] /etc/pki/entitlement/6047297349067.pem

它只是一个ini文件。 所以 crudini 将完成这项工作:

crudini --get /etc/yum.repos.d/redhat.repo rhel-8-for-x86_64-appstream-rpms sslclientkey

或所有部分:

for i in in `crudini --get /etc/yum.repos.d/redhat.repo`; do
  crudini --get /etc/yum.repos.d/redhat.repo "$i" sslclientkey
done

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM