Ruby按列对.dat文件进行排序

我对ruby很新。 我正在尝试打开文件.dat并按第二列降序排序。 到目前为止,我能够打开文件阅读全部内容。 请问有什么建议? 非常感谢。

文件:


  1 88 59 74 53.8 0.00 280 9.6 270 17 1.6 93 23 1004.5
  2 79 63 71 46.5 0.00 330 8.7 340 23 3.3 70 28 1004.5
  3 77 55 66 39.6 0.00 350 5.0 350 9 2.8 59 24 1016.8
  4 77 59 68 51.1 0.00 110 9.1 130 12 8.6 62 40 1021.1

output_lines = open("in.dat").lines.sort_by { |line| -line.split[1].to_i } open("out.dat", "w") { |f| f.write(output_lines.join) } 

这是一个非常基本的实现,要与大输入数据一起使用它应该稍微调整一下(使用regexp而不是String#split ,不创建一个全新的字符串来写入文件,等等)。