Jah*_*din 5 regex bash sed capture-group
如果有人可以提供帮助,我正在尝试使用正则表达式和捕获组进行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
Run Code Online (Sandbox Code Playgroud)
目前,它只是给文字值1而不是捕获组。
它应该给出:
#baseurl=http://mirror.centos.org/centos//contrib//
baseurl=https://10.10.10.10/centos//contrib//
Run Code Online (Sandbox Code Playgroud)
我也尝试过反斜杠括号,但它不起作用。请协助...。因为它现在伤了我的头...
仅在中使用s(替代)命令时,您只能捕获向后引用sed。
这应该工作:
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//
Run Code Online (Sandbox Code Playgroud)