[решено] Замена части строки с условием (sed, awk)

Ответить
 • Просмотры: 4
Аватара пользователя
DJ Mogarych

[решено] Замена части строки с условием (sed, awk)

Сообщение DJ Mogarych »

Привет!

Имеется конфиг со следующей строкой:



Код:

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

define("DBHOST", "358.24.5.342");

Условие следующее: в строке, содержащей DBHOST, заменить второе вхождение ".*" (там не только цифры могут быть) на "localhost".

Что-то никак не въеду, помогите, пожалуйста.

Заранее спасибо.
Аватара пользователя
greg zakharov

Re: [решено] Замена части строки с условием (sed, awk)

Сообщение greg zakharov »

Код:

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

sed -i.bak 's/\(.*dbhost"\,\).*/\1 "localhost");/Ig' file.cfg

Или:

Код:

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

sed -i.bak 's/\(.*dbhost"\,\s*"\).*\(".*\)/\1localhost\2/Ig' file.cfg
Аватара пользователя
DJ Mogarych

Re: [решено] Замена части строки с условием (sed, awk)

Сообщение DJ Mogarych »

А, надо было брать шире, то, что в скобочках! Спасибо!



А что значит \1 и \2?
Ответить

Вернуться в «Программирование в *nix»