簡體   English   中英

sed替換並保留雙引號

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM