我正在尝试按第二列对文本文件进行排序。文件中的所有文本都按word /t number
格式排列(单词、制表符及其权重)。我正在尝试按第二列按权重对文件进行排序,但结果并不理想。该文件处于读写状态。
我使用的命令是sort -k2,2nr
。(或将 n 更改为 g 或 h)。
他们两个都没有运气。
几行的例子,也许格式很重要:
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
答案1
您已经交换了选项,您需要:
sort -k2,2gr filename
k2,2
将要排序的键设置为仅第二个字段;g,r
类似于-g
和-r
,唯一的区别是,当像这样使用时,它只对键起作用
答案2
解决了。很抱歉,这与排序功能无关,但如果有人遇到同样的问题,我会留下答案。
问题出在语言环境上。我来自西班牙,即使我的操作系统语言和其他一些选项是en_US.UTF-8
,数字也是es_ES.UTF-8
。我更改了语言环境值,排序就成功了。(我猜这与标点符号有关。)