2011-06-12 14 views
2

我有一個執行shell命令的rake任務。當我從bash運行它時,替換工作,但是當我運行rake任務時,替換沒有發生。shell命令(涉及sed)在bash中工作,但不在mac os上的rake任務中

我耙文件:

require 'rake' 
namespace 'performance_tests' do 
    task :test_guests_generation do 

    %x{sed -e 's/NO_OF_GUESTS = \[.*]/NO_OF_GUESTS = \[400, 10]/' -i '' db/seeds.rb} 
    end 
end 

試圖在Mac OS中終端的命令並執行替換:

$ sed -e 's/NO_OF_GUESTS = \[.*]/NO_OF_GUESTS = \[400, 10]/' -i '' db/seeds.rb 

回答

1

嗯......不知道是誠實的。你嘗試過逃離空間嗎?你可以粘貼你正在處理的行和期望的結果嗎?

+0

逃離的空間(我逃過了反斜槓的好措施太)工作。它最終看起來像這樣:%x {sed -e's/NO_OF_GUESTS \ = \\\ [。*]/NO_OF_GUESTS \ = \\\ [400,\ 10] /'-i''db/seeds.rb } – cowdinosaur 2011-06-14 02:33:27