Как заменить этот текст в файле из командной строки в Linux? - PullRequest
1 голос
/ 05 августа 2010

У меня есть файл конфигурации прокси, который имеет следующую строку:

Allow 212.21.3.44

Я бы хотел заменить эту часть IP-адреса своим новым IP-адресом, когда он изменится. Вероятно, было бы проще просто использовать номер строки при поиске - и я не думаю, что файл конфигурации изменится вообще, кроме этого конкретного параметра.

Как я могу сделать это из командной строки с чем-то вроде Perl, sed и т. Д .?

Ответы [ 3 ]

2 голосов
/ 05 августа 2010

Если вы хотите использовать sed для изменения определенного номера строки, вы можете использовать:

sed -i '<line number> s/Allow .*$/Allow <new ip>/g' <filename>

1 голос
/ 05 августа 2010

в случае изменения номера строки

sed -i '/Allow/s/Allow .*$/Allow <new ip>/' <filename>
1 голос
/ 05 августа 2010
sed -i 's/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/my.new.ip.here/' file.txt

Флаг -i изменит файл на месте (зависит от вашего дистрибутива / вкуса * nix - работает на Ubuntu для меня).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...