Заменить строку в конфигурационном файле - PullRequest
0 голосов
/ 29 января 2012

Я хочу заменить строки файла конфигурации Redmine автоматически.Файл конфигурации выглядит следующим образом:

# MySQL (default setup).
....
production:
  adapter: mysql
  database: redmine
  host: localhost
  username: root
  password:
  encoding: utf8

development:
  adapter: mysql
  database: redmine_development
  host: localhost
  username: root
  password:
  encoding: utf8
  ....

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

Как это сделать с sed?

1 Ответ

2 голосов
/ 29 января 2012

на основе вашего файла примера:

sed -r '/^production:/,/^$/{s/(\s*database:).*/\1newDB/;
        s/(\s*password:).*/\1newPWD/}' yourConfig

вышеупомянутый cmd изменит параметр «база данных» и «пароль» в разделе «производство» на newDB и newPWD.

output:

...
production:
  adapter: mysql
  database:newDB
  host: localhost
  username: root
  password:newPWD
  encoding: utf8

development:
  adapter: mysql
  database: redmine_development
  host: localhost
  username: root
  password:
  encoding: utf8
...
...