Awk 如何从repo文件中仅提取已启用的存储库?

Awk 如何从repo文件中仅提取已启用的存储库?,awk,sed,grep,repository,extract,Awk,Sed,Grep,Repository,Extract,我正在尝试使用awk或grep从下面的文件中仅提取已启用的回购协议。 我知道有本机工具可以实现这一点,比如启用了yum-repolist,但我仍然希望使用grep-awk甚至sed来实现这一点 输出结果应为[]内的字符串。 例如:red-hat-enterprise-linux-scalable-file-system-for-rhel-6-ritority-rpms,这是此文件中唯一启用的repo # cat /etc/yum.repos.d/redhat.repo [red-hat-ente

我正在尝试使用awk或grep从下面的文件中仅提取已启用的回购协议。 我知道有本机工具可以实现这一点,比如启用了yum-repolist,但我仍然希望使用grep-awk甚至sed来实现这一点

输出结果应为[]内的字符串。 例如:red-hat-enterprise-linux-scalable-file-system-for-rhel-6-ritority-rpms,这是此文件中唯一启用的repo

# cat /etc/yum.repos.d/redhat.repo
[red-hat-enterprise-linux-scalable-file-system-for-rhel-6-entitlement-rpms]
name = Red Hat Enterprise Linux Scalable File System (for RHEL 6 Entitlement) (RPMs)
baseurl = https://cdn.redhat.com/content/dist/rhel/entitlement-6/releases/$releasever/$basearch/scalablefilesystem/os
enabled = 1
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
sslcacert = /etc/rhsm/ca/redhat-uep.pem
sslclientkey = /etc/pki/entitlement/key.pem
sslclientcert = /etc/pki/entitlement/11300387955690106.pem

[red-hat-enterprise-linux-scalable-file-system-for-rhel-6-entitlement-source-rpms]
name = Red Hat Enterprise Linux Scalable File System (for RHEL 6 Entitlement) (Source RPMs)
baseurl = https://cdn.redhat.com/content/dist/rhel/entitlement-6/releases/$releasever/$basearch/scalablefilesystem/source/SRPMS
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
sslcacert = /etc/rhsm/ca/redhat-uep.pem
sslclientkey = /etc/pki/entitlement/key.pem
sslclientcert = /etc/pki/entitlement/11300387955690106.pem

[red-hat-enterprise-linux-scalable-file-system-for-rhel-6-entitlement-debug-rpms]
name = Red Hat Enterprise Linux Scalable File System (for RHEL 6 Entitlement) (Debug RPMs)
baseurl = https://cdn.redhat.com/content/dist/rhel/entitlement-6/releases/$releasever/$basearch/scalablefilesystem/debug
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sslverify = 1
sslcacert = /etc/rhsm/ca/redhat-uep.pem
sslclientkey = /etc/pki/entitlement/key.pem
sslclientcert = /etc/pki/entitlement/11300387955690106.pem
试一试


我发现方括号部分很棘手,这是我得到它的原因。

awk'/\[/'的可能重复项Infiei没有看到您也希望删除方括号。请参阅我的答案。但我只需要提取已启用的回购
awk -v RS= -F '[][]' '/enabled = 1/{print $2}' file
awk -v RS= -F '[][]' '/enabled = 1/{print $2}' file