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

发布于 2025-02-08 18:47:30 字数 1519 浏览 1 评论 0原文

我想从文本文件(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-appSpstream-rpm和rhel-8-for-for-for-for-rhel-8-for-x86_64-appSpstream-appStream-appStream-appStream-appStream-appstream-appstream-appstreky路径x86_64-baseos-rpm通过命令行或脚本,

过任何帮助

update update

尝试

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

我 RPM和RHEL-8-FOR-X86_64-BASEOS-RPM

I wanted to extract a paticular file path from a text file (yum repository file) The file contents looks like this

[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

My requirement is to extract sslclinetkey path of both rhel-8-for-x86_64-appstream-rpm and rhel-8-for-x86_64-baseos-rpm through the command line or script

Any help would be appreciated

UPDATE

I tried this way, but I am getting multiple entries

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

But I only need of rhel-8-for-x86_64-appstream-rpm and rhel-8-for-x86_64-baseos-rpm

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

手心的温暖 2025-02-15 18:47:30
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
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
很酷不放纵 2025-02-15 18:47:30

它只是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

It is just ini file. So crudini will do the work:

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

or for all sections:

for i in in `crudini --get /etc/yum.repos.d/redhat.repo`; do
  crudini --get /etc/yum.repos.d/redhat.repo "$i" sslclientkey
done
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文