我想使用ip_ttl="1"
将字符ip_ttl="2"
替换为sed
。
我已尝试过sed -i "s/ip_ttl="1"/ip_ttl="2"/g"
- 但它无效。
请帮忙!
答案 0 :(得分:2)
将您的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
答案 1 :(得分:1)
如果您在模式中使用引号,请在模式中转义双引号:
sed -i "s/ip_ttl=\"1\"/ip_ttl=\"2\"/g"
或用单引号括起整个模式:
sed -i 's/ip_ttl="1"/ip_ttl="2"/g'
答案 2 :(得分:0)
或者你可以转义引号
sed -i "s/ip_ttl=\"1\"/ip_ttl=\"2\"/g" file
有时候这很有用,因为你在选择的字符串中都有单引号和双引号。