
正文
【Linux常见命令】sort命令
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
sort - sort lines of text files
sort命令用于将文本文件内容加以排序。
sort可针对文本文件的内容,以行为单位来排序。
语法:
sort [OPTION]... [FILE]...
sort [OPTION]... --files0-from=F
sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件]
参数:
sort默认无参数,按照ascii码排序,升序,从小到大
- -n 依照数值的大小排序。
- -r 以相反的顺序来排序。
- -u,--unique 去除重复行
with -c, check for strict ordering; without -c, output only the
first of an equal run- -u参数,取唯一,不管是否为相邻行
[root@oldboy oldboy]# sort uniq.txt
1
1
aa
aa
bb
cc
dd
www
www[root@oldboy oldboy]# sort uniq.txt -u
1
aa
bb
cc
dd
wwwsort -u 压缩,唯一
[root@oldboy oldboy]# uniq uniq.txt
www
aa
bb
aa
cc
dd
1
aauniq压缩相邻行
- -b 忽略每行前面开始出的空格字符。
- -c 检查文件是否已经按照顺序排序。
[root@oldboy oldboy]# cat sort_c.txt
11
22
33
44
11
22
33
44
# 显示第5行的11未按排序要求排序,用于检查排序是否有错误
[root@oldboy oldboy]# sort -c sort_c.txt
sort: sort_c.txt:5: disorder: 11sort -c检查排序是否ok
- -d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
- -f 排序时,将小写字母视为大写字母。
- -i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
- -m 将几个排序好的文件进行合并。
- -M 将前面3个字母依照月份的缩写进行排序。
- -o<输出文件> 将排序后的结果存入指定的文件。
- -r 以相反的顺序来排序。
- -t<分隔字符> 指定排序时所用的栏位分隔字符。
- -t, --field-separator=SEP
- 默认的SEP分隔符为空格
[root@oldboy oldboy]# sort new.txt
1-user01
2-user02
3-user03
4-user04
5-user05
# 分隔符设置为“-”,取第二列作为排序的条件列,-r倒序
[root@oldboy oldboy]# sort new.txt -t '-' -k 2 -r
5-user05
4-user04
3-user03
2-user02
1-user01sort -k 2 指定key,指定-t分隔符,倒序排序
-k, --key=POS1[,POS2] 指定起始的排序列
-k, --key=POS1[,POS2]
start a key at POS1 (origin 1), end it at POS2 (default end of line)
- +<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
示例:
# 数据准备
[root@oldboy oldboy]# cat sort_test.txt
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
test
Hello
hello
Welcome
www.baidu.com# 以默认的方式对文件进行排序
[root@oldboy oldboy]# sort sort_test.txt
Hello
Welcome
a
b
c
d
e
f
g
h
hello
i
j
k
l
m
n
o
p
q
r
s
t
test
u
v
w
www.baidu.com
x
y
z
sort默认的排序方式
sort 命令将以默认的方式将文本文件的第一列以ASCII 码的次序排列,并将结果输出到标准输出。
注意,ASCII码的对照表如下:https://baike.baidu.com/item/ASCII/309296?fr=aladdin
[root@oldboy oldboy]# sort sort_test.txt -r
z
y
x
www.baidu.com
w
v
u
test
t
s
r
q
p
o
n
m
l
k
j
i
hello
h
g
f
e
d
c
b
a
Welcome
Hello
sort -r 倒序,从大到小





