Sedを使用してPHPメモリ制限を修正する

Sedを使用してPHPメモリ制限を修正する

私はデフォルトのphp_admin_value [memory_limit]を128Mから512Mに変更する必要があるスクリプトを書いています。 CLI または bash スクリプトでコマンドを実行するとエラーは発生しませんが、実際にファイルに更新は適用されません。私は何が間違っていましたか?

/etc/php-fpm.d/www.confファイルの行は次のとおりです。

;php_admin_value[メモリ制限] = 128M

これは私のコマンドです:

sudo sed -i 's/;php_admin_value[memory_limit] = 128M/php_admin_value[memory_limit] = 512M/' /etc/php-fpm.d/www.conf

ベストアンサー1

sed正規表現では、[次のようになります。特殊文字紹介した角かっこ表現。リテラル文字として扱うにはエスケープする必要があります。明確にするために仕上げフレーズを省略することもできますが、必ずしも]必要ではありません。

だから

$ echo ';php_admin_value[memory_limit] = 128M' | 
    sed 's/;php_admin_value[memory_limit] = 128M/php_admin_value[memory_limit] = 512M/'
;php_admin_value[memory_limit] = 128M

失敗する、

$ echo ';php_admin_value[memory_limit] = 128M' | 
    sed 's/;php_admin_value\[memory_limit] = 128M/php_admin_value[memory_limit] = 512M/'
php_admin_value[memory_limit] = 512M

効果がありました。また、見ることができますshスクリプトでsedを使用するときにどの文字をエスケープする必要がありますか?

おすすめ記事