2014-09-25 3 views
0

큰 따옴표 안에 서버와 IP 정보를 변경하기 만하면됩니다.sed는 큰 따옴표를 대체하고 유지합니다

: 원래 라인 :

"server":"10.10.10.10:3306" 

OR

"server":"localhost:3306" 

출력 라인 :

"server":"20.20.20.20:3306" 

I 사용하려고 ...

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

출력 : 모두 더블 quoest이

server:20.20.20.20:3306 

을 사라? 값을 대체하지만 큰 따옴표는 사용하지 않습니다. 나는 큰 따옴표를 바꾸면 안된다.

어떤 도움이 필요합니까?

답변

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" 
관련 문제