读取行、更改和删除 Ruby

Read Lines, Change & Delete 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            

我想做的是找到单词和 puts + 之间的空格 - 如果有的话 - 并删除 # 符号后的任何内容。所以它应该看起来像 ;

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

提前致谢

正则表达式

我建议您使用 regular expression 来查找匹配项。

  1. # 符号后的字符串 #.*

  2. 空格 </code> OR <code>\s(也匹配制表符)

替换为 Ruby

您可以将匹配的字符串替换为 gsub!

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

做如下:

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