linux -> 如何按顺序排序

linux -> 如何按顺序排序

我怎样才能以 1,2,3,10,12 而不是 1,10,12,2,3 的排序顺序获得下面的输出?

avi@tech> get  hardwareNumber=    productNumber

hardwareNumber=1                               productNumber 526845
hardwareNumber=10                              productNumber 526845
hardwareNumber=12                              productNumber 526845
hardwareNumber=2                               productNumber 526845
hardwareNumber=3                               productNumber 526845

答案1

将输出通过管道传输到

sort -t= -nk2,2
  • -t表示分隔符
  • -n按数字排序,即你想要的
  • -k2,2告诉 sort 使用第二列(并且仅第二列)对行进行排序。

答案2

您需要sort带有-n标志,来自man sort

-n, --numeric-sort
           compare according to string numerical value
$ sort -nt'=' -k2 file
hardwareNumber=1                               productNumber 526845
hardwareNumber=2                               productNumber 526845
hardwareNumber=3                               productNumber 526845
hardwareNumber=10                              productNumber 526845
hardwareNumber=12                              productNumber 526845

相关内容