批量替换字符串一例

计算机以及编程本身的出现就是为了把人从重复性的工作中解放出来,去做更加有意义的事情。
本着这个原则,我们当中很多人都可以说是“懒人”。
比如就是现在,我有这么一个需求,把一些文件夹下面的某些文件中的一些字符串换成其他字符串。
作为一个资深懒人,一定要知道手上有什么兵器可以去做这件事情。

细化的需求:
1. 需要替换的旧字符串是mytable,新字符串是newtable
2. 文件夹的名字都叫做xxx_yyy_forms,xxx有4种,yyy有3种

替换文件中的字符串,最厉害的是sed,不过文件夹名字存在组合的情况,
自己对shell的语法不是很喜欢,还是用ruby吧。

替换一个文件的命令行是:
sed -i '' "s/mytable/newtable/g" app/views/field_approval_forms/*

 1 prefixes = %w(field misfeasor faker)
 2 suffixes = %w(approval revoke record)
 3 
 4 dir_names = []
 5 prefixes.each do |p|
 6   suffixes.each do |s|
 7     dir_names << "#{p}_#{s}_forms"
 8   end
 9 end
10 puts dir_names
11 dir_names.each do |d|
12   cmd = "sed -i \'\' \"s/mytable/newtable/g\" /app/views/#{d}/*"
13   system cmd
14 end

博客园 ruby 代码没法语法高亮吗?

 

posted on 2015-09-20 13:33  中国酒魂  阅读(98)  评论(0)    收藏  举报

导航