Linux之sort排序

作用

  • 排序

参数:

  • -b 忽略每行前面开始出的空格字符。
  • -c 检查文件是否已经按照顺序排序。
  • -d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
  • -f 排序时,将小写字母视为大写字母。
  • -i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
  • -m 将几个排序好的文件进行合并。
  • -M 将前面3个字母依照月份的缩写进行排序。
  • -n 依照数值的大小排序。
  • -o<输出文件> 将排序后的结果存入指定的文件。
  • -r 以相反的顺序来排序。
  • -t<分隔字符> 指定排序时所用的栏位分隔字符。
  • +<起始栏位><结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
  • –help 显示帮助。 –version 显示版本信息

1.sort将文件每一行作为一个单位,相互比较,原则上是从首字母向后,按照ASCLL码比较

1
2
3
4
5
6
[md@vm-kvm5643-app ~]$ cat tmp
python
java
c
c++
shell
1
2
3
4
5
6
[md@vm-kvm5643-app ~]$ sort tmp
c
c++
java
python
shell

2.sort中-u参数是为了取出重复行

1
2
3
4
5
6
7
8
[md@vm-kvm5643-app ~]$ cat tmp
python
java
c
c++
shell
python
python
1
2
3
4
5
6
[md@vm-kvm5643-app ~]$ sort -u tmp
c
c++
java
python
shell

3.sort中默认是比较每个字符,所以会出现11在3前面的情况,-n可以指定按照数值比较

1
2
3
4
5
6
[md@vm-kvm5643-app ~]$ sort tmp
11
2
3
32
78
1
2
3
4
5
6
[md@vm-kvm5643-app ~]$ sort -n tmp
2
3
11
32
78

4.sort的-o选项是将排序之后的内容输出到指定文件

1
2
3
4
5
6
7
[md@vm-kvm5643-app ~]$ sort -n tmp -o test
[md@vm-kvm5643-app ~]$ cat test
2
3
11
32
78

5.排序时-t指定分隔符,-k指定分割之后按照第几个分隔符来排序

1
2
3
4
5
6
[md@vm-kvm5643-app ~]$ sort tmp

2010-10-01
2016-04-30
2018-01-21
2019-02-28
1
2
3
4
5
6
[md@vm-kvm5643-app ~]$ sort -n -t'-' -k 2 tmp

2018-01-21
2019-02-28
2016-04-30
2010-10-01
-------------本文结束感谢您的阅读-------------