素材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