多个领域和数字排序
问题描述:
文件列表:多个领域和数字排序
sysbench-size-256M-mode-rndrd-threads-1
sysbench-size-256M-mode-rndrd-threads-16
sysbench-size-256M-mode-rndrd-threads-4
sysbench-size-256M-mode-rndrd-threads-8
sysbench-size-256M-mode-rndrw-threads-1
sysbench-size-256M-mode-rndrw-threads-16
sysbench-size-256M-mode-rndrw-threads-4
sysbench-size-256M-mode-rndrw-threads-8
sysbench-size-256M-mode-rndwr-threads-1
sysbench-size-256M-mode-rndwr-threads-16
sysbench-size-256M-mode-rndwr-threads-4
sysbench-size-256M-mode-rndwr-threads-8
sysbench-size-256M-mode-seqrd-threads-1
sysbench-size-256M-mode-seqrd-threads-16
sysbench-size-256M-mode-seqrd-threads-4
sysbench-size-256M-mode-seqrd-threads-8
sysbench-size-256M-mode-seqwr-threads-1
sysbench-size-256M-mode-seqwr-threads-16
sysbench-size-256M-mode-seqwr-threads-4
sysbench-size-256M-mode-seqwr-threads-8
我谨模式(rndrd,rndwr等)对它们进行排序,然后数:
sysbench-size-256M-mode-rndrd-threads-1
sysbench-size-256M-mode-rndrd-threads-4
sysbench-size-256M-mode-rndrd-threads-8
sysbench-size-256M-mode-rndrd-threads-16
sysbench-size-256M-mode-rndrw-threads-1
sysbench-size-256M-mode-rndrw-threads-4
sysbench-size-256M-mode-rndrw-threads-8
sysbench-size-256M-mode-rndrw-threads-16
....
我已经试过了下面的循环,但它是由数排序,但我需要的序列,例如1,4,8,16:
$ for f in $(ls -1A); do echo $f; done | sort -t '-' -k 7n
编辑:
请注意,数字排序(N)的数量对其进行排序(1,1,1,1,4,4,4,4 ...),但我需要一个像1,4,8,16,1序列,4,8,16 ......
答
for
循环是完全不必要的,因为-1
参数为ls
管道输出。收益率为
ls -A | sort -t- -k 5,5 -k 7,7n
其中第一个键在第5列开始和结束,第二个键在第7列开始和结束并且是数字。
答
排序列:
sort -t- -k5,5 -k7n
主排序是第5列(而不是休息,这就是为什么5,5
),在第7栏按号码排序中学。
该命令被接受,但似乎悄悄忽略'N'(使用GNU排序8.20) – msw 2013-04-30 11:50:07
@msw:哎呀,我的错误。我mislpaced了'N'! – choroba 2013-04-30 11:52:35