我怎样才能以 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