7

如果有人可以帮忙,我正在尝试使用正则表达式和捕获组进行 sed 附加,但它不能完全工作:

echo "#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/" | sed -re '/#baseurl=http:\/\/mirror.centos.org(.*)/a baseurl=https:\/\/10.10.10.10\ \1'
 #baseurl=http://mirror.centos.org/centos//contrib//
 baseurl=https://10.10.10.10 1

目前它只是给出文字值 1 而不是捕获组。

它应该给出:

 #baseurl=http://mirror.centos.org/centos//contrib//
 baseurl=https://10.10.10.10/centos//contrib//

我也尝试过反斜杠括号,但它不起作用。请协助....因为它现在正在伤害我的头......

4

1 回答 1

7

您只能ssed.

这应该工作:

s="#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/"    
sed -r 's~#baseurl=http://mirror\.centos\.org(.*)~&\nbaseurl=https://10.10.10.10\1~' <<< "$s"

#baseurl=http://mirror.centos.org/centos//contrib//
baseurl=https://10.10.10.10/centos//contrib//
于 2016-08-23T14:26:29.333 回答