【笔记】【Linux命令笔记】sort排序

素材1(带字符、单位)

[ck289433@shell.ceshiren.com test]$ cat sort_h
60MB
10
1000KB
20MB
300KB
5
A
40GB
50KB

1. 直接排序

[ck289433@shell.ceshiren.com test]$ cat sort_h | sort
10
1000KB
20MB
300KB
40GB
5
50KB
60MB
A

2. 以人类视角去进行排序 -h

字符优先于数字,且自动对KB/MB/GB等单位进行大小排序

[ck289433@shell.ceshiren.com test]$ cat sort_h | sort -h
A
5
10
50KB
300KB
1000KB
20MB
60MB
40GB

3. 逆序排列 -r

[ck289433@shell.ceshiren.com test]$ cat sort_h | sort -hr
40GB
60MB
20MB
1000KB
300KB
50KB
10
5
A

素材2(纯数字)

[ck289433@shell.ceshiren.com test]$ cat sort_n | sort
0
00
01
09
23
30
32010
32102
3306
44002
5743
67
70
78

1. 按照实际数字大小排序 -n

[ck289433@shell.ceshiren.com test]$ cat sort_n | sort -n
0
00
01
09
23
30
67
70
78
3306
5743
32010
32102
44002

2. 将排序结果存到指定文件里 -o

cat sort_n | sort -nr -o 1.txt

素材(字符分隔)

[ck289433@shell.ceshiren.com test]$ cat sort_t
1.2.3.4
2.1.2.3
3.3.4.2
8.7.6.4
6.4.9.7


1SP2SP3SP4
2SP1SP2SP3
3SP3SP4SP2
8SP7SP6SP4
6SP4SP9SP7

1. 指定分隔符-t,然后根据第N列内容进行排序-k

案例1

[ck289433@shell.ceshiren.com test]$ cat sort_t | sort -t . -k 2


1SP2SP3SP4
2SP1SP2SP3
3SP3SP4SP2
6SP4SP9SP7
8SP7SP6SP4
2.1.2.3
1.2.3.4
3.3.4.2
6.4.9.7
8.7.6.4

案例2

[ck289433@shell.ceshiren.com test]$ cat sort_t | sort -t P -k 4


1.2.3.4
2.1.2.3
3.3.4.2
6.4.9.7
8.7.6.4
3SP3SP4SP2
2SP1SP2SP3
1SP2SP3SP4
8SP7SP6SP4
6SP4SP9SP7

素材(版本号)

[ck289433@shell.ceshiren.com test]$ cat sort_V
Docker v10.2.3
Docker v1.4.7
Docker v5.2.8
docker o.x.5.1

按照版本排序 -V

[ck289433@shell.ceshiren.com test]$ cat sort_V | sort -V
Docker v1.4.7
Docker v5.2.8
Docker v10.2.3
docker o.x.5.1