文字列を別の文字列に置き換えたいです。例: 次のテキストを変更したいと思います。
"listen_addresses = ['127.0.0.1:53', '[::1]:53']"
次のテキストで
"listen_addresses = ['127.0.0.1:40', '[::1]:40']"
私は次のコマンドを試しました。
sudo sed "s#listen_addresses \= \['127\.0\.0\.1\:53'\, '\[\:\:1\]\:53'\]'#listen_addresses \= \['127\.0\.0\.1\:40'\, '\[\:\:1\]\:40'\]#g"
私は次のような結果を得ました。
入力する:listen_addresses = ['127.0.0.1:53', '[::1]:53']
出力:listen_addresses = ['127.0.0.1:53', '[::1]:53']
私は何が間違っていましたか?
ベストアンサー1
コメントに記載されているとの[
み]
エスケープされます。
echo "listen_addresses = ['127.0.0.1:53', '[::1]:53']" |
sed -e "s#listen_addresses = \['127.0.0.1:53', '\[::1\]:53'#listen_addresses = ['127.0.0.1:40', '[::1]:40'#"
これは
listen_addresses = ['127.0.0.1:40', '[::1]:40']