Unix YML配置文件中的IP地址模式匹配和替换
我想用$IP替换配置文件abc.conf的IP地址 IP=xx.xx.xx.xxUnix YML配置文件中的IP地址模式匹配和替换,unix,awk,sed,Unix,Awk,Sed,我想用$IP替换配置文件abc.conf的IP地址 IP=xx.xx.xx.xx net: port: 27017 bindIp: 127.0.0.1 样本输出 net: port: 27017 bindIp: xx.xx.xx.xx 编辑了一些解释: 找一行写有bindIP:+一些内容的词。 ()对可使用\1、\2等调用的内容进行分组 (bindIp:)-找到单词bindIp:,然后指向组\1 在正则表达式中,*与任意长度(0到无限)的内容匹配 (.*)-查找任意长度
net:
port: 27017
bindIp: 127.0.0.1
样本输出
net:
port: 27017
bindIp: xx.xx.xx.xx
编辑了一些解释:
- 找一行写有
+一些内容的词。bindIP:
对可使用()
、\1
等调用的内容进行分组\2
-找到单词(bindIp:)
,然后指向组bindIp:
\1
- 在正则表达式中,
与任意长度(0到无限)的内容匹配*
-查找任意长度的内容并指向组(.*)
\2
- 将找到的内容替换为
\1xx.xx.xx.xx
-第一组的内容(\1
本身)bindIP:
-字符串xx.xx.xx.xx
-E
参数对于表达式中的括号转义是不必要的。您能解释一下此解决方案的工作原理吗?
sed -E 's/(bindIp: )(.*)/\1xx.xx.xx.xx/g' abc.conf