2015-04-12 42 views
0

我有一個文件,我想在Ruby中進行操作。我相信它應該很容易,但無法找到它,因爲我是一個新手。在線上,我有一些數據像;閱讀行,更改和刪除Ruby

Bassmaster Boats Inc#Bassmaster Boats Inc      
Basstream#Basstream      
Bat Inflatable Boats#Bat Inflatable Boats      
Bavaria Motoryachts#Bavaria Motoryachts      
Bavaria Sailing Yachts#Bavaria Sailing Yachts      
Bay Craft Inc#Bay Craft Inc      
Bay Hawk Industries Inc#Bay Hawk Industries Inc      
Bay Quest#Bay Quest      
Bay Warrior Boats#Bay Warrior Boats      
Bay Water Boats#Bay Water Boats      
Bayfield Boat Yard Ltd#Bayfield Boat Yard Ltd      
Bayliner Marine Corp#Bayliner Marine Corp      
Baymaster Boats Inc#Baymaster Boats Inc      
Baymaster by Dargel#Baymaster by Dargel      
Bayon#Bayon      
Bayrunner#Bayrunner    

我想這樣做是爲了找到空間 - 如果有的話 - 字之間,並把+,並刪除任何有後#跡象。所以它應該看起來像;

Bassmaster+Boats+Inc    
Basstream 
Bat+Inflatable+Boats 
Bavaria+Motoryachts 
Bavaria+Sailing+Yachts 
..... 
..... 
..... 

預先感謝您

回答

2

正則表達式

我建議你使用regular expression找到匹配。

  1. #符號後的字符串包含地 #.*

  2. 空間 OR \s

    可以替代匹配使用Ruby

替補的比賽(也製表符匹配)字符串與gsub!

s.gsub!(/#.*/, '').gsub!(/ /, '+')

1

做如下:

File.open("another/file", "w") do |file| 
    File.foreach("filename") do |line| 
    line[/(#.*)/] = "" 
    file.puts line.gsub(\s+\, "+") 
    end 
end