2016-02-12 25 views
0

我正在尋找一種理智的方式(我原先看過sed,但我認爲它很複雜),以啓用yum回購中的章節。在基於RHEL的系統上匹配後修改線路

我的木偶回購是:

[puppetlabs-products] 
name=Puppet Labs Products El 7 - $basearch 
baseurl=http://yum.puppetlabs.com/el/7/products/$basearch 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs 
enabled=1 
gpgcheck=1 

[puppetlabs-deps] 
name=Puppet Labs Dependencies El 7 - $basearch 
baseurl=http://yum.puppetlabs.com/el/7/dependencies/$basearch 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs 
enabled=1 
gpgcheck=1 

[puppetlabs-devel] 
name=Puppet Labs Devel El 7 - $basearch 
baseurl=http://yum.puppetlabs.com/el/7/devel/$basearch 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs 
enabled=0 
gpgcheck=1 

[puppetlabs-products-source] 
name=Puppet Labs Products El 7 - $basearch - Source 
baseurl=http://yum.puppetlabs.com/el/7/products/SRPMS 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs 
failovermethod=priority 
enabled=0 
gpgcheck=1 

[puppetlabs-deps-source] 
name=Puppet Labs Source Dependencies El 7 - $basearch - Source 
baseurl=http://yum.puppetlabs.com/el/7/dependencies/SRPMS 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs 
enabled=0 
gpgcheck=1 

[puppetlabs-devel-source] 
name=Puppet Labs Devel El 7 - $basearch - Source 
baseurl=http://yum.puppetlabs.com/el/7/devel/SRPMS 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs 
enabled=0 
gpgcheck=1 

我希望能夠匹配(在這種情況下)[puppetlabs-devel]扔啓用標誌從01。在基於RHEL的系統中執行此操作的理想方式是什麼?這必須是一個自動化解決方案,因爲這是啓動腳本的一部分,應該沒有交互。

我這個捏造,但從來沒有真正能得到它的工作

cat /etc/yum.repos.d/puppetlabs.repo |awk '/\[puppetlabs-devel\]/{print;getline;$0="enabled=1"}1' 

期望輸出

[puppetlabs-products] 
name=Puppet Labs Products El 7 - $basearch 
baseurl=http://yum.puppetlabs.com/el/7/products/$basearch 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs 
enabled=1 
gpgcheck=1 

[puppetlabs-deps] 
name=Puppet Labs Dependencies El 7 - $basearch 
baseurl=http://yum.puppetlabs.com/el/7/dependencies/$basearch 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs 
enabled=1 
gpgcheck=1 

[puppetlabs-devel] 
name=Puppet Labs Devel El 7 - $basearch 
baseurl=http://yum.puppetlabs.com/el/7/devel/$basearch 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs 
enabled=1 ## This portion changed 
gpgcheck=1 

[puppetlabs-products-source] 
name=Puppet Labs Products El 7 - $basearch - Source 
baseurl=http://yum.puppetlabs.com/el/7/products/SRPMS 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs 
failovermethod=priority 
enabled=0 
gpgcheck=1 

[puppetlabs-deps-source] 
name=Puppet Labs Source Dependencies El 7 - $basearch - Source 
baseurl=http://yum.puppetlabs.com/el/7/dependencies/SRPMS 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs 
enabled=0 
gpgcheck=1 

謝謝。

+0

根據輸入發佈預期輸出並解釋「RHEL based」系統是什麼,如果相關,或者刪除關於ti的文本(如果不相關)。 –

+0

@EdMorton將在一分鐘後發佈輸出,如本系統中的RHEL,可以是Fedora,Redhat Linux,CentOS等 – ehime

回答

1

使用sed你就會有這樣的事情:

sed '/\[puppetlabs-devel\]/,/^\[/s/^enabled=0/enabled=1/' puppetlabs.repo 

這個表達式將[puppetlabs-devel]和下[之間搜索,改變與enabled=0開頭的行。