sort命令非常简单,且容易理解。先来看几个常用的例子。
下面是一个文件1.txt
$ cat 1.txt
a
c
b
e
c
g
f
d
简单的使用场景
下面对这个文件中的内容进行排序:
不加任何参数,直接排序
$ sort 1.txt
a
b
c
c
d
e
f
g
使用-r
参数反向排序
$ sort -r 1.txt
g
f
e
d
c
c
b
a
使用-u
参数去掉重复的数据
$ sort -u 1.txt
a
b
c
d
e
f
g
重复的字符c
没有了。
使用-n
参数按照数值大小来排序
-n, --numeric-sort
compare according to string numerical value
复杂一点的场景
先看一个文件a.txt
kite-MacBook:tmp kite$ cat a.txt
10.39.48.189 cuiyk-cdn-test-1
10.39.48.25 cuiyk-cdn-test-2
10.39.48.227 cuiyk-cdn-test-3
10.39.48.239 cuiyk-cdn-test-4
10.39.48.188 cuiyk-cdn-test-5
10.39.48.226 cuiyk-cdn-test-6
10.39.48.238 cuiyk-cdn-test-7
10.39.48.173 cuiyk-cdn-test-8
10.39.48.178 cuiyk-cdn-test-9
10.39.48.24 cuiyk-cdn-test-10
10.39.48.248 cuiyk-cdn-test-11
10.39.48.244 cuiyk-cdn-test-12
10.39.48.245 cuiyk-cdn-test-13
这里要用到两个参数
-k[column]n
按照第column列排序-t[char]
指定分隔符为char
按照ip排序
$ sort -t. -k4n a.txt
10.39.48.24 cuiyk-cdn-test-10
10.39.48.25 cuiyk-cdn-test-2
10.39.48.173 cuiyk-cdn-test-8
10.39.48.178 cuiyk-cdn-test-9
10.39.48.188 cuiyk-cdn-test-5
10.39.48.189 cuiyk-cdn-test-1
10.39.48.226 cuiyk-cdn-test-6
10.39.48.227 cuiyk-cdn-test-3
10.39.48.238 cuiyk-cdn-test-7
10.39.48.239 cuiyk-cdn-test-4
10.39.48.244 cuiyk-cdn-test-12
10.39.48.245 cuiyk-cdn-test-13
10.39.48.248 cuiyk-cdn-test-11
上面的例子是以.
为分隔符,并按照第4列排序。
按照主机名排序
kite-MacBook:tmp kite$ sort -t- -k4n a.txt
10.39.48.189 cuiyk-cdn-test-1
10.39.48.25 cuiyk-cdn-test-2
10.39.48.227 cuiyk-cdn-test-3
10.39.48.239 cuiyk-cdn-test-4
10.39.48.188 cuiyk-cdn-test-5
10.39.48.226 cuiyk-cdn-test-6
10.39.48.238 cuiyk-cdn-test-7
10.39.48.173 cuiyk-cdn-test-8
10.39.48.178 cuiyk-cdn-test-9
10.39.48.24 cuiyk-cdn-test-10
10.39.48.248 cuiyk-cdn-test-11
10.39.48.244 cuiyk-cdn-test-12
10.39.48.245 cuiyk-cdn-test-13
上面的例子是以-
为分隔符,并按照第4列排序