Делать:
sed -i "s/\$rcmail_config\['default_host'\] =.*/\$rcmail_config['default_host'] = 'abcdef';/" /your.file
Он заменит только линию и установит ваши данные независимо от того, что ранее.
Вопрос
Я хочу добавить строку в определенном месте в абзаце
то есть:
$rcmail_config['default_host'] = '';
к
$rcmail_config['default_host'] = 'abcdef';
Возможно ли использовать SED?
Решение
Делать:
sed -i "s/\$rcmail_config\['default_host'\] =.*/\$rcmail_config['default_host'] = 'abcdef';/" /your.file
Он заменит только линию и установит ваши данные независимо от того, что ранее.
Другие советы
sed -e "/\$rcmail_config/s/'';$/'abcdef';/"
должен делать то, что вы хотите.
> 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';