2011-08-02 11 views
4

私はこの小さなプログラムを私がRubyで書いています。私はここでコードの素敵な部分を見つけて、ファイル内の何かを見つけて置き換えることができましたが、うまくいかないようです。Rubyでファイルを検索して置換する

#!/usr/bin/env ruby 

DOC = "test.txt" 
FIND = /,,^M/ 
SEP = "\n" 

#make substitution 
File.read(DOC).gsub(FIND, SEP) 

#Check if the line already exist 
unique_lines = File.readlines(DOC).uniq 

#Save the result in a new file 
File.open('test2.txt', 'w') { |f| f.puts(unique_lines) } 

おかげでみんな: は、ここでは、コードです! expand_path

full_path_to_read = File.expand_path('~/test1.txt') 
full_path_to_write = File.expand_path('~/test2.txt') 

File.open(full_path_to_read) do |source_file| 
    contents = source_file.read 
    contents.gsub!(/FOO/, 'BAR') 
    File.open(full_path_to_write, "w+") { |f| f.write(contents) } 
end 

使用:私はあなたが行がすでに存在するかどうかを確認し、通常、このようなもの(ここで私は「BAR」で「FOO」を置換したい)で行くことにしますチェックをスキップ

答えて

8

おそらくここで少しペタンティックですが、私はそれが私が意図していないファイルを誤って壊さないようにしています。

関連する問題