我有一個文本文件,需要在廚師食譜中進行編輯。 我需要找到這個特定的行(粗體),並在其下面插入配置。Ruby在文件中找到一行,並在其下面添加
.
.
.
# PLACE YOUR CONFIGURATION MEMORY start up here :
<INSERT MEMORY ARGUMENTS HERE>
.
.
.
.
這是我一直trying..I只是想知道有沒有用Ruby 某種功能,在那裏我能找到一個線,然後將該行的下面添加新條目?
ruby_block "edit the configuration file " do
block do
text = File.read(file_name)
replace = text.sub(/# PLACE YOUR CONFIGURATION MEMORY start up here :/, "MEM_ARGS=-Xms512m -Xmx1024m");
File.write(file_name, replace)
end
end
我不想雖然更換註釋部分,我只是想利用它作爲一個錨,我可以在文本中添加新行。
對於讀取的文件,你喜歡'open'和'gets'到'IO.foreach('input')do | line | ...'嗎? –
好的結果,如果輸入不存在,而不僅僅是失敗,那麼它會縮短OTOH File.open {File.foreach {...}}將創建一個空輸出文件。 – akuhn
我認爲需要考慮兩種類型的失敗:文件不存在;並且文件不包含文本標記(包括文件爲空)。如果文件具有可管理的大小,則可能最容易在數組中構造輸出文件,如果一切正常,則將該數組寫入文件。 –