Bash
找到另一個字元串後替換一個字元串
我正在以程式方式建構盒子,但我需要為 PHP 更新一個 .repo 文件,該文件具有以下內容:
# Repository: http://rpms.remirepo.net/ # Blog: http://blog.remirepo.net/ # Forum: http://forum.remirepo.net/ [remi] name=Remi's RPM repository for Enterprise Linux 6 - $basearch #baseurl=http://rpms.remirepo.net/enterprise/6/remi/$basearch/ mirrorlist=http://rpms.remirepo.net/enterprise/6/remi/mirror enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi [remi-php55] name=Remi's PHP 5.5 RPM repository for Enterprise Linux 6 - $basearch #baseurl=http://rpms.remirepo.net/enterprise/6/php55/$basearch/ mirrorlist=http://rpms.remirepo.net/enterprise/6/php55/mirror # NOTICE: common dependencies are in "remi-safe" enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi [remi-php56] name=Remi's PHP 5.6 RPM repository for Enterprise Linux 6 - $basearch #baseurl=http://rpms.remirepo.net/enterprise/6/php56/$basearch/ mirrorlist=http://rpms.remirepo.net/enterprise/6/php56/mirror # NOTICE: common dependencies are in "remi-safe" enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi [remi-test] name=Remi's test RPM repository for Enterprise Linux 6 - $basearch #baseurl=http://rpms.remirepo.net/enterprise/6/test/$basearch/ mirrorlist=http://rpms.remirepo.net/enterprise/6/test/mirror # WARNING: If you enable this repository, you must also enable "remi" enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi [remi-debuginfo] name=Remi's RPM repository for Enterprise Linux 6 - $basearch - debuginfo baseurl=http://rpms.remirepo.net/enterprise/6/debug-remi/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi [remi-php55-debuginfo] name=Remi's PHP 5.5 RPM repository for Enterprise Linux 6 - $basearch - debuginfo baseurl=http://rpms.remirepo.net/enterprise/6/debug-php55/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi [remi-php56-debuginfo] name=Remi's PHP 5.6 RPM repository for Enterprise Linux 6 - $basearch - debuginfo baseurl=http://rpms.remirepo.net/enterprise/6/debug-php56/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi [remi-test-debuginfo] name=Remi's test RPM repository for Enterprise Linux 6 - $basearch - debuginfo baseurl=http://rpms.remirepo.net/enterprise/6/debug-test/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
我只想啟用 PHP 5.6,所以我需要找到字元串
[remi-php56]
,然後將它的第一個實例enabled=0
更改為enabled=1
.我確定有一個
sed
或awk
為此,但我一直無法弄清楚。
試試這個:
sed -i -e '/\[remi-php56\]/,/^\[/s/enabled=0/enabled=1/' /etc/yum.repos.d/*.repo
用於處理所有
.repo
文件,或者您可以指定單個目標.repo
文件。或者,如果您的系統中安裝了 packaje ,您可以使用you-config-manager按名稱永久啟用/禁用 repo 。
yum-utils
即使這可以通過 sed 命令解決,使用正確的命令來更改 yum 配置會更簡單:
yum install yum-utils yum-config-manager --enable remi-php56
請注意,嚮導說明中對此進行了說明。