linux文件名中含有数字的排序

linux默认排序规则,例如1 2 ... 10,默认顺序是1 10 2 ...

例如:

root@mac:/var/temp/t/tmp>ls -alrt

total 56

-rw-r--r-- 1 root root    2 Apr  1 08:43 tempfile.1

-rw-r--r-- 1 root root    2 Apr  1 08:43 tempfile.2

-rw-r--r-- 1 root root    2 Apr  1 08:43 tempfile.3

-rw-r--r-- 1 root root    2 Apr  1 08:43 tempfile.4

-rw-r--r-- 1 root root    2 Apr  1 08:43 tempfile.5

-rw-r--r-- 1 root root    2 Apr  1 08:43 tempfile.6

-rw-r--r-- 1 root root    2 Apr  1 08:43 tempfile.7

-rw-r--r-- 1 root root    2 Apr  1 08:43 tempfile.8

-rw-r--r-- 1 root root    2 Apr  1 08:43 tempfile.9

-rw-r--r-- 1 root root    3 Apr  1 08:43 tempfile.10

解决办法是,用'.'分隔出数据部分后再sort排序

cat `ls -l tempfile* | awk '{print $NF}' | sort -n -t '.' -k 2 ` 

-n 是以数字排序

-t '.' 是以'.'分隔

-k 2是分隔后,以第2列排序

你可能感兴趣的:(linux文件名中含有数字的排序)