Войти

Показать полную графическую версию : [решено] Замена части строки с условием (sed, awk)


DJ Mogarych
14-01-2020, 12:11
Привет!
Имеется конфиг со следующей строкой:
define("DBHOST", "358.24.5.342");
Условие следующее: в строке, содержащей DBHOST, заменить второе вхождение ".*" (там не только цифры могут быть) на "localhost".
Что-то никак не въеду, помогите, пожалуйста.
Заранее спасибо.

greg zakharov
15-01-2020, 00:11
sed -i.bak 's/\(.*dbhost"\,\).*/\1 "localhost");/Ig' file.cfg Или: sed -i.bak 's/\(.*dbhost"\,\s*"\).*\(".*\)/\1localhost\2/Ig' file.cfg

DJ Mogarych
15-01-2020, 09:58
А, надо было брать шире, то, что в скобочках! Спасибо!

А что значит \1 и \2?

greg zakharov
15-01-2020, 13:30
Группы совпадений.




© OSzone.net 2001-2012