Использование sed или grep для поиска и замены IP-адреса в файле - PullRequest
0 голосов
/ 24 апреля 2019

Я использовал этот код, он вводится только с новым ipaddress

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

Но мне нужно войти с системным ipaddress в файл напрямую, может кто-нибудь помочь с этим

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 24 апреля 2019
sed -E 's/([^/])\b([0-9]{1,3}\.){3}[0-9]{1,3}\b([^/])'/\1192.168.0.28\2/g config.json

, если в качестве переменной, например, полученной из ifconfig и т. Д., После тестирования выполнить реальное редактирование, добавьте -i option

$ 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
0 голосов
/ 24 апреля 2019

Команда, которая у вас уже есть, делает это.Просто нужно добавить опцию -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
}
Установите IP-адрес в переменной:

$ newip="192.168.0.20"

Запустите команду sed:

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

Файл обновил 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 }

...