行が次の形式になっているテキスト ファイルを並べ替えようとしています。
! ! ! ! ! ||| ! ||| 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 つの数字があり、その最後の数字が並べ替えの基準になります。テキスト ファイルは約 15 GB で、それを行うために書いた perl スクリプトがありましたが、perl がファイル全体を一度にロードするため、32 GB の RAM を搭載した古いラップトップでしか機能しませんでした。今、私は 8 GB の RAM で立ち往生しており、スワップ ファイルを何日もかき回すだけです。標準の Linux の sort コマンドの方が巨大なファイルをより適切に処理できると聞いたことがありますが、最後の番号を使用する方法が見つかりません。