当前位置: 代码迷 >> 综合 >> sort command usage
  详细解决方案

sort command usage

热度:78   发布时间:2023-11-17 02:27:58.0

sort命令: sort lines of text files 排序文本文件行


语法: sort [OPTION]… [FILE]…

常用选项:

 排序输出,默认根据字符在ASCII码中的次序升序排序-n:按照数值的大小进行排序。-r:reverse 反向排序输出。-t:指定字段分隔符-k:指定以哪个字段排序 eg: sort -t: -k3 -n /etc/passwd  指定分割符号为: 第三个字段为比较字段, -n 为数值比较。-u:uniq 排序后相同的行只显示一次。-f:忽略字符大小写

实例:

$ cat sort.txt 
1 2 3 a
2 4 5 h
2 4 7 h
1 3 45 6
1224 4 5 j
0 3 46 u
j k d 8
j d 8 0//默认根据字符在ASCII码中的次序升序排序, 如果第一个字符相等则比较第二个字符,直到分出大小。
$ sort  sort.txt 
0 3 46 u
1224 4 5 j
1 2 3 a
1 3 45 6
2 4 5 h
2 4 7 h
j d 8 0
j k d 8// -n 选项按照数值进行排序
$ sort -n  sort.txt 
0 3 46 u
j d 8 0
j k d 8
1 2 3 a
1 3 45 6
2 4 5 h
2 4 7 h
1224 4 5 j// -r 排序结果反方向输出
$ sort -rn  sort.txt 
1224 4 5 j
2 4 7 h
2 4 5 h
1 3 45 6
1 2 3 a
j k d 8
j d 8 0
0 3 46 u// -t 指定空格为列分隔符,以第2列的数值进行排序
$ sort -t " " -k2  sort.txt 
1 2 3 a
1 3 45 6
0 3 46 u
2 4 5 h
1224 4 5 j
2 4 7 h
j d 8 0
j k d 8

$ cat sort2.txt 
1
0
3
4
5
5
6
8$ sort sort2.txt 
0
1
3
4
5
5
6
8$ sort -u sort2.txt 
0
1
3
4
5
6
8说明:sort -u 如果相邻行相同则只输出一行。而如果相同行不相邻,则不会只输出一行。
  相关解决方案