使用sed或grep搜索和替换文件中的IP地址

时间:2019-04-24 06:57:11

标签: sed grep

我使用了此代码,仅使用新的IP地址输入

sed -r 's/(\b[0-9]{1,3}.){3}[0-9]{1,3}\b'/$newip/

但是我需要直接使用系统ipaddress输入文件,任何人都可以帮忙解决这个问题

预先感谢

2 个答案:

答案 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
}
  1. 在变量中设置IP地址:

$ newip="192.168.0.20"

  1. 运行sed命令:

$ sed -i -r 's/(\b[0-9]{1,3}.){3}[0-9]{1,3}\b'/$newip/ file

  1. 文件已更新IP:

$ 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