根据特定的子字符串对Bash中的字符串列表进行数字排序

时间:2018-09-21 06:17:41

标签: bash sorting

我有一个字符串列表,不幸的是它似乎不适合使用sort --key=???进行排序。

这是字符串:

Original                        40.101 s                   40.556 s
User XYZ                         3.389 s                    3.261 s
User XYZ/User ABC                5.342 s                    5.300 s
Somebody else                   32.531 s                   32.154 s
My friend Tony the Pony          5.905 s                    5.639 s
L33t                            27.007 s                   26.893 s
Serial port                      7.871 s                    7.738 s
Unknown user                     2.815 s                    2.700 s

我希望按照第一个数字进行排序,升序或降序并不重要,尽管知道一个原则上可以同时实现这两个功能的解决方案将非常有用。

我尝试了sort --key=2 <<HERE ... HERE,但这并不奇怪,这只会导致随机顺序。

1 个答案:

答案 0 :(得分:3)

假设输入文件正确缩进了空格,请使用-k命令的sort选项:

sort -n -k1.30 file

或相反:

sort -nr -k1.30 file

1.30表示跳过字段编号1的前30个字符。

-n开关按数字而不是按字典顺序排序。