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

时间:2012-09-05 05:53:34

标签: ruby file sorting

我对红宝石很新。我试图打开一个文件.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

1 个答案:

答案 0 :(得分:4)

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,而不是创建一个全新的字符串来写入文件,所以上)。