linux之sort命令详解|sort命令使用教程

sort命令

sort命令是在Linux里非常有用,它将文件进行排序,并将排序结果标准输出或重定向输出到指定文件。
|

常用参数

sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件]
-b:忽略每行前面开始的空格字符,空格数量不固定时,该选项几乎是必须要使用的
-f:将小写字母视为大写字母
-h:使用易读性数字(例如:2K、1G)
-k:以哪个区间 (field) 来进行排序
-n:依照数值的大小排序
-o<输出文件>:将排序后的结果存入指定的文件
-r:降序
-u:忽略相同行
-t<分隔字符>:指定分隔符,默认的分隔符为空白字符和非空白字符之间的空字符
--help 显示帮助。
--version 显示版本信息。

默认按照升序排列

sort a.txt

图片[1]-linux之sort命令详解|sort命令使用教程 - 程序员知识精选-程序员知识精选

sort 对文件的文本内容排序。
系统默认情况下,排序规则如下:

  • 以数字开头的行,将排在以字母开头的行前面
  • 以小写字母开头的行,将排在以大写字母开头的行前面
  • 按字母表的顺序排列以字母开头的行
[root@centos7 testdir]# cat cuttest.txt 
1 2 3 4 5 6 8
9 8 7 6 5 4 3
2 1 9 8 7 6 5
[root@centos7 testdir]# sort cuttest.txt
1 2 3 4 5 6 8
2 1 9 8 7 6 5
9 8 7 6 5 4 3

#将结果输出到文件
[root@centos7 testdir]# sort -o sort.cut.txt cuttest.txt
[root@centos7 testdir]# cat sort.cut.txt
1 2 3 4 5 6 8
2 1 9 8 7 6 5
9 8 7 6 5 4 3

#倒序排列
[root@centos7 testdir]# sort -r cuttest.txt
9 8 7 6 5 4 3
2 1 9 8 7 6 5
1 2 3 4 5 6 8

# -k
指定按照分列后的第n列进行排序,但是要注意若指定列相同的话,sort会自动的针对其他列进行排序。
[san@San doc]$ cat test.txt 
2  google    1000  20000
5  tencent      500      18000
4  facebook  1000  19000
3  apple      1300  25000
以第二列名称排序,相同看第三列
[san@San doc]$ sort test.txt -k 2
3  apple      1300  25000
4  facebook  1000  19000
2  google      1000  20000
5  tencent      500      18000

# 两个k 第二次在第一次基础上排序,1nr nr放在指定列后,只针对列起作用, 按照第一列的数值倒序
[san@San doc]$ sort test.txt -k 2 -k 1nr
7  apple  2600  15000
5  apple  2600  15000
3  apple  2600  15000
2  google  1000  20000
# -t 指定分隔符
[san@San doc]$ sort test.txt -t ':' -k 4
5:tencent:1100:18000
2:google:1000:20000
4:facebook:1000:23000
3:apple:1300:25000
1:公司名称:公司人数:平均工资
# -u对指定列去重 -u 3n第三列去重
[san@San doc]$ sort test.txt -u -k 3n
1  BITE  1500  18000  10T
2  google  1600  18000  1G
6  GOOGLE  1700  18000  5M
© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发
程序员吾非同的头像-程序员知识精选

昵称

取消
昵称表情代码图片