Encontre o padrão e adicione entre array se a palavra-chave for encontrada

0

Eu tenho um arquivo de configuração do PHP que gostaria de alterar via script. O arquivo de configuração contém vários blocos que exigem que eu os altere. Um bloco contém o seguinte:

'KEYWORD1' =>
  array (
    Random text here
  ),

Vários blocos:

'KEYWORD2' =>
  array (
    Random text here
  ),

O que eu gostaria de saber se é possível adicionar entre array . Dependendo do KEYWORD para adicionar determinado texto.

Um exemplo de saída do script seria:

'KEYWORD2' =>
  array (
    'enable' => true,
    'email' => false,
  ),

Idealmente, eu seria capaz de encontrar a palavra-chave e adicionar o texto apenas se ele corresponder. Por exemplo: pesquise KEYWORD1 e adicione certas configurações como a que está no bloco acima.

Alguma dica? Idéias?

    
por t988GF 29.03.2018 / 22:56

1 resposta

0

Eu testei para KEYWORD2 e funcionou bem Você pode adicionar a palavra-chave em loop onde e você quer mudar

for i in KEYWORD2
do
sed -n  '/'$i'/,/),/p' l.txt|sed "s/array.*/&\n'enable' => true,\n'email' => false,/g"| sed '/Random/d'
done

Saída

'KEYWORD2' =>
  array (
'enable' => true,
'email' => false,
  ),

=============================================== ============= Suponha que você queira alterar para keyword1 e keyword2

use abaixo do código

for i in KEYWORD1 KEYWORD2;
 do
sed -n  '/'$i'/,/),/p' l.txt|sed "s/array.*/&\n'enable' => true,\n'email' => false,/g"| sed '/Random/d'
done
    
por 30.03.2018 / 17:35