Sedの交換が期待どおりに機能しない

Sedの交換が期待どおりに機能しない

listen = 127.0.0.1:9000私はに交換したいlisten = '/var/run/php56-fpm.sock'

sudo sed -i 's/listen = 127.0.0.1:9000/listen = \'/var/run/php56-fpm.sock\'/g' /etc/php-fpm.d/www.conf

間違い:

bash: -c: line 63: unexpected EOF while looking for matching `''
bash: -c: line 64: syntax error: unexpected end of file

ベストアンサー1

まず、A single quote may not occur between single quotes, even when preceded by a backslash.参考資料バッシュマニュアル

第二に、文字列の区切り文字を /置き換える代わりに、他の文字を区切り文字として使用することもできます。/

結果:

sudo sed "s#listen = 127.0.0.1:9000#listen = '/var/run/php56-fpm.sock'#g" /etc/php-fpm.d/www.conf

まだ使用されていません-i。印刷物を確認して、期待どおりに機能していることを確認してください。

おすすめ記事