2012-01-29 76 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 
...