繁体   English   中英

使用sed替换字符串

[英]Replace a string using sed

我想使用sed将字符串ip_ttl="1"替换为ip_ttl="2"

我试过sed -i "s/ip_ttl="1"/ip_ttl="2"/g" -但它不起作用。

请帮忙!

将sed代码放在单引号中,因为您的代码已经包含双引号。

sed -i 's/ip_ttl="1"/ip_ttl="2"/g' file

如果将代码放在两个双引号中,则sed将在到达另一个双引号后终止程序。 因此, "在到达1之前,它将视为结束并终止程序。

更新:

如果数字总是变化,那么最好定义与任何数字匹配的模式。

sed -i 's/ip_ttl="[0-9]\+"/ip_ttl="2"/g' file

如果在模式中使用引号,则可以在模式中使用双引号引起来:

sed -i "s/ip_ttl=\"1\"/ip_ttl=\"2\"/g"

或将整个模式用单引号引起来:

sed -i 's/ip_ttl="1"/ip_ttl="2"/g'

或者,您可以转义引号

sed -i "s/ip_ttl=\"1\"/ip_ttl=\"2\"/g" file

有时这很有用,因为在要选择的字符串中同时包含单引号和双引号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM