[英]sed replace and keep double quotes
我只想更改雙引號內的服務器和IP信息。
例如:原始行:
"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
所有的雙季票都去了哪里? 它替換值,但不保留雙引號。 我希望它不應該更改雙引號。
有什么幫助嗎?
您需要將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"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.