使用rails模板将行插入文件

cre*_*der 4 ruby templates ruby-on-rails sed

我正在尝试创建一个rails模板,它将代码添加到特定行号的文件中.例如,我需要添加一个到config/routes.rb的路由

我试过sed,gsed(只是因为我在mac上他们说sed有插入和追加问题),无论如何,我无法达到我想要的结果.

任何有关这方面的帮助将不胜感激.

我已尝试过几个这个命令的排列,但没有一个工作,这是一个例子

run "gsed '3 a/This is it' config/routes.rb"
Run Code Online (Sandbox Code Playgroud)

也许甚至是另一个建议

编辑::::::

好,我休息了一下,当我回来的时候,在SED读了之后,我意识到我需要到流写回文件,但我之前这样做,

run  "gsed '2 a\
Add this line after 2nd line
' config/routes.rb > config/routes.rb"
Run Code Online (Sandbox Code Playgroud)

但路由文件是空白的,所以我尝试使用不同的文件名(new.routes.rb),

run  "gsed '2 a\
Add this line after 2nd line
' config/routes.rb > config/new.routes.rb"
Run Code Online (Sandbox Code Playgroud)

这很有用,所以我知道现在要做什么.

Mik*_*her 16

由于行号随着文件的发展而变化,因此最好在现有字符串表达式之前或之后插入新代码.在模板生成器中,您可以执行以下操作:

inject_into_file 'config/application.rb', :before => "  end" do
  "\n    config.logger = Logger.new(config.paths.log.first, 50, 1048576)\n\n"
end
Run Code Online (Sandbox Code Playgroud)

注意,您可以使用:after之后:之前不符合您的需求.