2012-01-29 54 views
0

我想自动替换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

回答

2

根据您的示例文件:

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

上述CMD将改变“数据库”和“密码”设置在“生产”部分NEWDB和NEWPWD。

输出:

... 
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 
... 
相关问题