【问题标题】:Problems with sort -gr using bash使用 bash 的 sort -gr 问题
【发布时间】:2018-04-05 16:55:09
【问题描述】:

我想按数字降序对列表进行排序:

$cat b.txt
a -0.51
c 0.62
m -0.3
z -0.004
b -0.44

为此,我使用“sort -gr -k 2”来获得:

$sort -gr -k 2
c 0.62
z -0.004
m -0.3
b -0.44
a -0.51

但是该命令按字母顺序对其进行了排序。我认为该命令认为它只是一列。我尝试使用 -nr 但它不能很好地对浮点数进行排序。

【问题讨论】:

  • 列表以第 2 列的降序排列:0.62 > -0.004 > -0.3 > -0.44 > -0.51
  • 另外,c z m b a 是按字母顺序排列的,你用什么字母?
  • 不,我期待我写的结果,但结果没有按数字排序。结果是:z m c b a。

标签: linux bash list sorting numbers


【解决方案1】:

使用 gnuplot,我验证了这一点

plot "<sort -k2gr file" using 0:2 with lines

确实是按数字降序对数字进行了排序。你期望的顺序是什么?

【讨论】:

  • 您需要 gnuplot 来验证这一点吗?
  • @ScottHunter:不,但我认为 OP 可能会。
  • 我没有得到那个结果...也许是因为我的bash版本没有更新?
  • 输入文件中没有隐藏字符吗?尝试使用xxd 进行检查。
  • 使用LANG=en_US问题已解决。
猜你喜欢
  • 2019-01-15
  • 1970-01-01
  • 1970-01-01
  • 2016-07-19
  • 1970-01-01
  • 1970-01-01
  • 2019-11-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多