Uma maneira desajeitada de fazer os dois parâmetros de uma vez é
sed -i 's/^(\w*[td]_max_\w*size\s*=\s*).M/00M/' filename(s)
Primeiro de tudo, de acordo com esta Lista de diretivas do arquivo php.ini ,
existem apenas três palavras-chave que contêm _max_ e terminam com size :
-
imlib2.font_cache_max_size -
post_max_size -
upload_max_filesize
Observe que a carta imediatamente antes do _max_
é diferente em cada caso:
-
imlib2.font_cache_max_size→e -
post_max_size→t -
upload_max_filesize→d
então, pesquisando por [td]_max_ , podemos eliminar o primeiro.
O comando em detalhes:
-
^, claro, restringe a expressão regular para corresponder ocorrências no início da linha. Se você quiser combinar strings que não estão no começo da linha, remova o^. Nota: a menos que você adicione algo para especificar o contrário, isso fará com que o comando altere as linhas comentadas, o que pode ser confuso. -
\(…\)identifica um grupo de caracteres. Nós vamos usá-lo para combinar tudo até (mas não incluindo) o valor do parâmetro (ou seja, o número após o=). -
\w*[td]_max_\w*sizecorresponde- qualquer número de caracteres "palavra" (alfanuméricos),
- a
toud, -
_max_, - qualquer número (possivelmente zero) de caracteres de palavras e
-
size.
-
\s*=\s*corresponde a qualquer número de caracteres de espaço (espaço ou tabulação regular) um=e qualquer número de caracteres de espaço novamente. (Você não precisa dizer\=.)Este é o final do grupo, marcado por
\). - Como você sabe,
.Mcorresponde a qualquer caractere seguido porM. (Você já está usando isso.) -
00Mparece confuso, mas é apenas-
, que substitui os caracteres no grupo\(…\)por si, - seguido por
200M, que é o que você deseja substituir onMnumber com.
-
Você não precisa do g
a menos que você espere combinar várias strings na mesma linha
(o que é impossível se você ancorar a expressão regular
para o início da linha com ^ ).
Substitua filename(s) por seu /etc/php/*/fpm/php.ini glob,
ou qualquer outro nome de arquivo ou lista de nomes de arquivos.
Antes de fazer o acima, você deve executar
sed -n 's/^(\w*[td]_max_\w*size\s*=\s*).M/00M/p' filename(s)que mostrará o que o primeiro comando fará.