我使用了此代码,仅使用新的IP地址输入
sed -r 's/(\b[0-9]{1,3}.){3}[0-9]{1,3}\b'/$newip/
但是我需要直接使用系统ipaddress输入文件,任何人都可以帮忙解决这个问题
预先感谢
答案 0 :(得分:0)
您已经执行的命令。只需将-i选项添加到sed:
$ cat file
{ "MONGODB_CONNECTION_URL" : "mongodb://127.0.0.1/genieacs",
"CWMP_INTERFACE" : "0.0.0.0",
"CWMP_PORT" : 7547,
"CWMP_SSL" : false,
"NBI_INTERFACE" : "0.0.0.0",
"NBI_PORT" : 7557,
"FS_INTERFACE" : "0.0.0.0",
"FS_PORT" : 7567,
"FS_HOSTNAME" : "acs.example.com",
"DEBUG" : false
}
$ newip="192.168.0.20"
$ sed -i -r 's/(\b[0-9]{1,3}.){3}[0-9]{1,3}\b'/$newip/ file
$ cat file
{ "MONGODB_CONNECTION_URL" : "mongodb://255.255.25.0/genieacs",
"CWMP_INTERFACE" : "255.255.25.0",
"CWMP_PORT" : 7547,
"CWMP_SSL" : false,
"NBI_INTERFACE" : "255.255.25.0",
"NBI_PORT" : 7557,
"FS_INTERFACE" : "255.255.25.0",
"FS_PORT" : 7567,
"FS_HOSTNAME" : "acs.example.com",
"DEBUG" : false
}
答案 1 :(得分:0)
sed -E 's/([^/])\b([0-9]{1,3}\.){3}[0-9]{1,3}\b([^/])'/\1192.168.0.28\2/g config.json
如果作为变量,例如从ifconfig
等获得,测试后进行真正的编辑,然后添加-i
选项
$ newip=192.168.0.28
$ sed -Ei 's/([^/])\b([0-9]{1,3}\.){3}[0-9]{1,3}\b([^/])'/\1$newip\2/g config.json