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를 사용할 때 어떤 문자를 이스케이프해야 합니까?

관련 정보