テキストファイルを2番目の列で並べ替えようとしています。ファイル内のすべてのテキストはWord /t number
形式(Word、タブ、およびその重量)です。重量で2番目の列でファイルをソートしようとしていますが、結果は良くありません。ファイルは読み取りおよび書き込み中です。
私が使用しているコマンドはsort -k2,2nr
です。 (または、gまたはhのnを変更します)。
どちらも運がありません。
数行の例、おそらくフォーマットが重要です:
00001930-n 7.18509e-06
00001740-n 4.35957e-05
00002137-n 1.13377e-05
00002452-n 7.73398e-06
00002684-n 0.000244948
00003553-n 3.98312e-05
00003993-n 3.98321e-07
ここでのいくつかの結果:指数は考慮されていないようです。 (これらの番号はsort -k2,2nr filename
を使用して作成されます。
02052204-n 3e-06
01975237-v 1.2e-06
02288155-v 1.2e-06
15105733-n 1.4e-06
00962135-a 1.6e-06
09719309-n 1.9e-06
02998269-a 2.5e-05
11938977-n 3.1e-06
14498972-n 3.6e-06
03341153-n 5.4e-07
01908703-n 6.5e-06
00257026-r 1.02e-06
08111599-n 1.03e-05
オプションが交換されているため、次のものが必要です。
sort -k2,2gr filename
k2,2
は、キーを2番目のフィールドとしてのみソートに設定します。 g,r
は-g
および-r
に類似していますが、このように使用すると、キーでのみ機能するという違いがあります。解決しました。ソート機能とは何の関係もありませんでしたが、同じ問題が発生した場合に備えて回答を残します。
問題はロケールにありました。私はスペイン出身です。OS言語とその他のオプションがen_US.UTF-8
、数値はes_ES.UTF-8
。そのロケール値を変更すると、ソートは機能しました。 (句読点と関係があると思います。)