次の文字列を変更したい
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
最後は、文字列が1行に複数回表示される場合にのみ必要です。
たとえば、
$ 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$