使用Ruby读取和修改文件中的行

时间:2012-07-15 21:46:26

标签: ruby

我刚刚开始使用Ruby,我的第一个程序从一个txt文件读取并将每行的修改版本打印到另一个。这个想法是为了得到这个:

- Book Title *Book Author*

对此:

  Book Title     Book Author

我的代码如下所示:

listold = File.open('listas.txt', 'r+')
listnew = File.new('lista.txt', 'w+')
listold.each_line {|line|
  nome, autor = line.split(' *')
  nome['- '] = '  '
  autor = autor.chomp('*')
  listnew.puts nome << "\t" << autor
}

我遇到的问题是它只适用于文件的最后一行。对于其他的,\t间距非常小,最后一个*不会被切断。有人能帮助我吗?

1 个答案:

答案 0 :(得分:1)

您的分组符合空格,后跟*。

您可能希望拆分'*'而不是'*'。

我尝试了你的代码,它适用于我的测试文件的每一行。