您的位置:首页 > 运维架构 > Linux

sort命令

2015-07-10 15:25 573 查看
sort命令

作用

主要用于对文本内容进行排序

语法:

sort [-bcfMnrtku][源文件][-o 输出文件]

参数:

-b 忽略每行前面开始出的空格字符。 -c 检查文件是否已经按照顺序排序。 -f 排序时,忽略大小写字母。 -M 将前面3个字母依照月份的缩写进行排序。 -n 依照数值的大小排序。 -o<输出文件> 将排序后的结果存入指定的文件。 -r 以相反的顺序来排序。 -t<分隔字符> 指定排序时所用的栏位分隔字符。 -k 选择以哪个区间进行排序 -u 删除重复行

示例

sort处理文件的时候是以行为单位,相互比较,原则是从首字符依次向后,依次按ASCII码值进行比较,最后将他们按升序输出

[jeck@localhost~]$ cat test
dddddddddddddd
ccccccccccc
eeeeeeeeee
aaaaaaaa
bbbbbbb
abcd
bcd
3
2
5
1
4
[jeck@localhost~]$ sort test
1
2
3
4
5
aaaaaaaa
abcd
bbbbbbb
bcd
ccccccccccc
dddddddddddddd
eeeeeeeeee

删除重复行 -u

[jeck@localhost~]$ cat test
bbbbb
aaaaa
cccccc
bbbbb
bbbbbaa
aaaaa
[jeck@localhost~]$ sort -u test
aaaaa
bbbbb
bbbbbaa
cccccc
降序排列 -r

[jeck@localhost~]$ sort -ur test
cccccc
bbbbbaa
bbbbb
aaaaa
把输出结果存到另一个文件中

一般情况下用'>'即可重定向到另一个文件,但是需要直接修改本文件时,用'>'就会把原文件清空,所以需要用到-o参数

[jeck@localhost~]$ cat test
bbbbb
aaaaa
cccccc
bbbbb
bbbbbaa
aaaaa
[jeck@localhost~]$ sort -ur test > 1.txt
[jeck@localhost~]$ cat 1.txt
cccccc
bbbbbaa
bbbbb
aaaaa
[jeck@localhost~]$ cp test test1
[jeck@localhost~]$ sort -ur test > test      ---->定向到原文件
[jeck@localhost~]$ cat test
空
[jeck@localhost~]$ sort -ur test1 -o test1
[jeck@localhost~]$ cat test1
cccccc
bbbbbaa
bbbbb
aaaaa

使用数值来排序 -n

默认sort会以行首第一个字符作比较排序,但是,当出现多位数字作比较时候,就得加-n,否则比较不成功

[jeck@localhost~]$ sort test
1
10
12
14
2
3
4
5
会发现排序不对,现在加上-n

[jeck@localhost~]$ sort -n test
1
2
3
4
5
10
12
14
指定间隔符(-t)和列数(-k)进行排序

[jeck@localhost~]$ cat test
一月192.168.254.1 109
二月192.168.254.2 201
三月192.168.254.4 344
现在要按访问次数从大到小排序,以空格为分隔符,指定比较第三列
[jeck@localhost~]$ sort -n -r -k 3 -t ' ' test
三月192.168.254.4 344
二月192.168.254.2 201
一月192.168.254.1 109
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux sort 命令