SED: добавьте строку в определенной линии

StackOverflow https://stackoverflow.com/questions/20353154

  •  25-08-2022
  •  | 
  •  

Вопрос

Я хочу добавить строку в определенном месте в абзаце

то есть:

$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';
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top