2014-09-25 3 views
0

Я просто хочу изменить информацию о сервере и IP-адресе внутри двойных кавычек.sed заменить и сохранить двойные кавычки

Для примера: оригинальная линия:

"server":"10.10.10.10:3306" 

ИЛИ

"server":"localhost:3306" 

выходная линия:

"server":"20.20.20.20:3306" 

Я попытался с помощью ...

sed -i s/.*/\"server\"\:\"20\.20\.20\.20\:3306\"/ 

выход:

server:20.20.20.20:3306 

где все двойные quoest ушли? заменяет значения, но не сохраняет двойные кавычки. Я хочу, чтобы он не менял двойные кавычки.

Любая помощь?

ответ

1

Вы должны приложить шаблон sed в одинарных кавычках. Если вы это сделаете, вам не нужно избегать двойных кавычек.

$ echo '"server":"10.10.10.10:3306"' | sed 's/.*/"server":"20.20.20.20:3306"/' 
"server":"20.20.20.20:3306" 

ИЛИ

Вы могли бы просто сделать так,

$ echo '"server":"10.10.10.10:3306"' | sed 's/[^":]\+:/20.20.20.20:/' 
"server":"20.20.20.20:3306" 
$ echo '"server":"localhost:3306"' | sed 's/[^":]\+:/20.20.20.20:/' 
"server":"20.20.20.20:3306" 
Смежные вопросы