我想更改以下字符串
allow ^120\.123\.178\.254$
进入
allow ^124\.130\.23\.235$
与 sed.
我尝试了以下方法,但它不起作用。
sed -e 's/allow ^120\.123\.178\.254$/allow ^124\.130\.23\.235$/g' /etc/xxx/file.conf
你能帮我吗?
答案1
您的源代码中有\
、$
、^
和.
字符,需要额外引用。你的目标也\
应该被引用
所以生成的字符串有点混乱:
sed 's/allow \^120\\\.123\\\.178\\\.254\$/allow ^124\\.130\\.23\\.235$/'
g
仅当该字符串每行可能出现多次时,才需要使用最后一个。
例如:
$ cat x
allow ^120\.123\.178\.254$
$ sed 's/allow \^120\\\.123\\\.178\\\.254\$/allow ^124\\.130\\.23\\.235$/' x
allow ^124\.130\.23\.235$
答案2
如果perl
是一个选项,则搜索模式和替换都可以被引用
$ cat file.conf
allow ^120\.123\.178\.254$
$ perl -pe 's/\Qallow ^120\.123\.178\.254$/q(allow ^124\.130\.23\.235$)/e' file.conf
allow ^124\.130\.23\.235$