正则表达式,如何在ruby中找到文件?

时间:2012-09-20 18:41:20

标签: ruby regex

我有两个Ruby文件:

db/migrate/20120920180336_create_admin_pages.rb
db/migrate/20120920150716_devise_create_users.rb

此文件中有一个常量变量:_create_admin_pages.rb

如何在文件中找到它并使以下命令正常工作?

gsub_file "db/migrate/*_create_admin_pages.rb", "t.boolean :published", "t.boolean :published, :default => false"

2 个答案:

答案 0 :(得分:2)

ruby -pe 'gsub("t.boolean :published", "t.boolean :published, :default => false")' < db/migrate/*_create_admin_pages.rb

Ruby可以运行多个选项。这里-pe选项(实际上有两个选项)让Ruby执行这个循环:

  • 直到不再输入:
  • 阅读一行输入,
  • -pe之后运行字符串作为代码,
  • 打印结果。

全部使用隐式变量$_,即最后一条读取行。

答案 1 :(得分:0)

你可以试试这个:

gsub_file Dir['db/migrate/*_create_admin_pages.rb'].first, "t.boolean :published", "t.boolean :published, :default => false"