如何在RoR配置文件中更改文本?

时间:2012-07-16 18:51:20

标签: ruby-on-rails unix sed

我在RoR项目的config / application.rb文件中有以下几行:

 [other lines that i omitted here]
 config.app_type= :rewards # :classic / :rewards
 config.app_prefix= '' # '$ ' for :classic  / '' for :rewards
 config.app_suffix= ' pts' # ' MXN', ' USD' for :classic / ' pts' for :rewards

我想使用sed使用脚本更改文本:

 [other lines that i omitted here]
 config.app_type= :classic # :classic / :rewards
 config.app_prefix= '$ ' # '$ ' for :classic  / '' for :rewards
 config.app_suffix= ' USD' # ' MXN', ' USD' for :classic / ' pts' for :rewards

我怎么能用sed做到这一点?我仍然不能用正则表达式得到它并且已经...:S

1 个答案:

答案 0 :(得分:1)

这应该有效。使用sed命令的文件可以避免转义引号的混乱。

script.sed的内容:

s/^\( *config\.app_type= *:\)rewards/\1classic/
s/^\( *config\.app_prefix= *\)''/\1'$ '/
s/^\( *config\.app_suffix= *\)' pts'/\1' USD'/

像以下一样运行:

sed -f script.sed infile

使用以下输出:

[other lines that i omitted here]
config.app_type= :classic # :classic / :rewards
config.app_prefix= '' # '$ ' for :classic  / '' for :rewards
config.app_suffix= ' pts' # ' MXN', ' USD' for :classic / ' pts' for :rewards