我正在尝试对行格式如下的文本文件进行排序:
! ! ! ! ! ||| ! ||| 1.25846e-05 0.248369 3.02708e-07 0.662955 2.718 ||| 0-0 1-0 2-0 3-0 4-0 ||| 476773 1.98211e+07 6
并希望按末尾的数字(即本例中的 6)按数字降序排序。这些行没有使用空格作为分隔符的可预测列数,而是使用 ||| 作为分隔符,总是有 5 列,最后一列总是有 3 个空格分隔的数字,最后一个作为排序依据。文本文件大约 15gb,我确实编写了一个 perl 脚本来执行此操作,但它只适用于我的旧笔记本电脑,它有 32gb 的 RAM,因为 perl 一次加载整个文件。现在我被 8gb RAM 卡住了,它只会搅动交换文件好几天。我听说标准的 linux 排序命令可以更优雅地处理大文件,但我找不到让它使用最后的数字的方法。