Страница 1 из 1

Вопрос по sed

Добавлено: 01 мар 2004, 18:40
Goliath
Требуется править в конфиге mrtg номер интерфейса при каждом старте.

Это делается командой
cat mrtg.conf | sed 's/Target\[192.168.4.2_5\]: [0-9]:public@192.168.4.2:/Target\[192.168.4.2_5\]: $interface_number:public@192.168.4.2:/'

где вместо $interface_number должен быть номер интерфейса, но на выходе вместо него появляется имя переменной. Пробовал кавычки ``, но это не помогло. Можно ли сделать, чобы в регулярном выражении отоьражалась переменная (одна цифра), а не ее имя?

Добавлено: 01 мар 2004, 19:33
leikind
Если ты хочешь чтобы шелл произвел нужные замены прежде чем sed прочитает скрипт, используй двойные кавычки

Добавлено: 01 мар 2004, 19:34
leikind

Код: Выделить всё

$ VAR=FOO  ; echo hello | sed 's/l/$VAR/'
he$VARlo
$ VAR=FOO  ; echo hello | sed "s/l/$VAR/"
heFOOlo

Добавлено: 02 мар 2004, 13:55
Goliath
Спасибо, все заработало.