Faço:
sed -i "s/\$rcmail_config\['default_host'\] =.*/\$rcmail_config['default_host'] = 'abcdef';/" /your.file
Ele substituirá apenas a linha e definirá seus dados, independentemente do que anteriormente.
Pergunta
Eu quero adicionar uma string em particular em um parágrafo
isso é:
$rcmail_config['default_host'] = '';
para
$rcmail_config['default_host'] = 'abcdef';
É possível usar sed?
Solução
Faço:
sed -i "s/\$rcmail_config\['default_host'\] =.*/\$rcmail_config['default_host'] = 'abcdef';/" /your.file
Ele substituirá apenas a linha e definirá seus dados, independentemente do que anteriormente.
Outras dicas
sed -e "/\$rcmail_config/s/'';$/'abcdef';/"
deve fazer o que você quiser.
> echo -e "foo = '';\nbar = '';\n\$rcmail_config['default_host'] = '';"
foo = '';
bar = '';
$rcmail_config['default_host'] = '';
> echo -e "foo = '';\nbar = '';\n\$rcmail_config['default_host'] = '';" | sed -e "/\$rcmail_config/s/'';$/'abcdef';/"
foo = '';
bar = '';
$rcmail_config['default_host'] = 'abcdef';