循序渐进学运维 - sort 命令篇

Linux sort命令

 用于将文本文件内容加以排序。 sort可针对文本文件的内容,以行为单位来排序

语法

sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件]

参数说明:

-b 		忽略每行前面开始出的空格字符。

-c		检查文件是否已经按照顺序排序。

-d      排序时,处理英文字母、数字及空格字符外,忽略其他的字符。

-f		排序时,将小写字母视为大写字母。

-i		排序时,除了040176之间的ASCII字符外,忽略其他的字符。

-m		将几个排序好的文件进行合并。

-M		将前面3个字母依照月份的缩写进行排序。

-n		依照数值的大小排序。

-o<输出文件>	   将排序后的结果存入指定的文件。

-r	 		   以相反的顺序来排序。

-t<分隔字符>	   指定排序时所用的栏位分隔字符。

+<起始栏位>-<结束栏位>   以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。

示例
1.查看/etc/passwd里的内容并且正向排序

[root@ localhost ~]# sort /etc/passwd

2.在输出行中去除重复行; sort的-u选项

[root@ localhost ~]# cat test.txt 
one
two
three
four
five
one

[root@ localhost ~]# sort test.txt 
five
four
one
one
three
two

[root@ localhost ~]# sort -u test.txt  #去除了重复行 
five
four
one
three
two

3.反向排序;sort默认的排序方式是升序,如果想改成降序,就加个-r就搞定了

[root@ localhost ~]# cat test2.txt 
1
3
6
2
5
4

[root@ localhost ~]# sort test2.txt 
1
2
3
4
5
6
[root@ localhost ~]# sort -r test2.txt  # -r参数改为降序
6
5
4
3
2
1

4.将排序后内容输出到文件 ;sort的-o选项

由于sort默认是把结果输出到标准输出,所以需要用重定向才能将结果写入文件,形如sort one.txt > two.txt。
但是,如果你想把排序结果输出到原文件中,用重定向可就不行了

[root@ localhost ~]# sort -r test2.txt > test2.txt 
[root@ localhost ~]# cat test2.txt 
[root@ localhost ~]# 
会将 test2.txt 清空

###########  sort -o参数 可以帮助我们

[root@ localhost ~]# cat test2.txt 
1
3
6
2
5
4
[root@ localhost ~]# sort -r test2.txt -o test2.txt 
[root@ localhost ~]# cat test2.txt 
6
5
4
3
2
1

5.依照数值的大小排序,sort的-n选项

 我们有时会遇到大的数排在小的数前面,这种情况是由于排序程序将这些数字按字符来排序了。
 sort -n  #以数值来排序
[root@ localhost ~]# cat number.txt 
2
7
9
9
11
3
[root@ localhost ~]# sort number.txt 
11
2
3
7
9
9
[root@ localhost ~]# sort -n number.txt 
2
3
7
9
9
11

6.sort的-t选项和-k选项

[root@ localhost ~]# cat last.txt 
banana:90:3.1
apple:40:3.5
pear:50:4.6
orange:30:6.3

这里内容表示有三列,用冒号隔开了,第一列为水果类型,第二列为水果数量,第三列为水果斤数
如果我想以水果斤数进行排序,就是对第三列进行排序。
sort -t 可以设定间隔符,制定后 用 -k来指定列数

[root@ localhost ~]# sort -n -k 3 -t : last.txt 
banana:90:3.1
apple:40:3.5
pear:50:4.6
orange:30:6.3
我们一冒号为间隔符,并对第三列进行数值升序排序
发布了29 篇原创文章 · 获赞 6 · 访问量 2750

猜你喜欢

转载自blog.csdn.net/SKTONE_SHUAI/article/details/104354150
今日推荐