Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: скрипт на SED'e
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы
romez777
Здравствуйте.
С перлом знаком плохо, потому пытаюсь все сделать на sed'e
Задача - найти в файле прямой зоны нужную строку и заменить в ней IP адрес, например:

ns A 192.168.196.2
заменить на
ns A 192.168.196.20

Делаю такой регексп в скрипте:

/bin/sed -e 's/^'$1'/'$1' A '$2'/' < zone_file

$1 и $2 - это параметры ком. строки для скрипта, содержащие соответственно имя и IP адрес

В результате получаю такое:

ns A 192.168.1.2 A 192.168.196.20

т.е. строка просто добавляется. Как это победить?
Спасибо.
andrew_b
Цитата(romez777 @ Jul 13 2005, 07:00)
Здравствуйте.
С перлом знаком плохо, потому пытаюсь все сделать на sed'e
Задача - найти в файле прямой зоны нужную строку и заменить в ней IP адрес, например:

ns              A      192.168.196.2
заменить на
ns              A      192.168.196.20

Делаю такой регексп в скрипте:

/bin/sed -e 's/^'$1'/'$1'  A    '$2'/' < zone_file

$1 и $2 - это параметры ком. строки для скрипта, содержащие соответственно имя и IP адрес

В результате получаю такое:

ns      A      192.168.1.2      A      192.168.196.20

т.е. строка просто добавляется.

Ну естественно, как просили, так он и сделал.

s/$1/A $2/
romez777
[/quote]
Ну естественно, как просили, так он и сделал.

s/$1/A $2/

[/quote]

Нет, так не работает, но уже проблема решена:
/bin/sed -e 's/^$1.*/$1 A $2/g' <zone_file
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.