Ruby Ruby 操作修改文件内容

answer · 2015年04月14日 · 最后由 yaoTrubine 回复于 2017年01月26日 · 8350 次阅读

当前有一 txt 文件,我想将里面的逗号,替换成换行符 \n(当然 Linux 一些工具亦可完成) 于是我这样实现:

File.open('example.txt','r+').each_line do |line|
   line.gsub!(/,/,"\n")
end

可是操作后源文件没有任何改变,我知道有一种先读在写的方式可以实现并且已经实现了,但这种以读写方式打开的文件为何操作后没有任何改变?

sed 命令搞定不好么。。。。

根本没有做写入操作怎么变啊。

File.open('example.txt','r+'){|f|
s=""
 f.eachline{|l| s+=l. gsub!(/,/,"\n")}
f.write s
}

大概这个意思吧

写两个方法辣

#第一个 
def output(filename)
    str = ""
    File.open(filename,"r+"){|f|
          f.each_line{|line|
               str += line.gsub(/,/,"\n")
          }
    }
   str
end
result = output("example.txt")

#第二个
def input(filename,str)
    File.open(filename,"w"){|f|
        f.write str
}
end
input("example.txt",result)
需要 登录 后方可回复, 如果你还没有账号请 注册新账号