终端排序无法正常工作

终端排序无法正常工作

我正在尝试按第二列对文本文件进行排序。文件中的所有文本都按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。我更改了语言环境值,排序就成功了。(我猜这与标点符号有关。)

相关内容