Linux命令:排序

8/1/2022 运维操作系统Linux

目录


参考:


# Linux命令:排序


# 一、命令简介

sort命令用于将文本文件内容加以排序。

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

sort命令将每一行作为一个单位进行比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按一定的顺序进行输出。

sort命令经常可以与ls、cat等命令结合使用,将查询到的结果按照我们要求进行排序。


# 二、语法说明

# 2.1 使用语法

sort [选项] [文件]  
1

# 2.2 选项说明

选项 说明
-b, --ignore-leading-blanks 忽略每行前面开始出的空格字符。
-c, --check, --check=diagnose-first 检查文件是否已经按照顺序排序。
-C, --check=quiet, --check=silent 与-c参数类似,但不要报告第一行错误
-d, --dictionary-order 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-g, --general-numeric-sort 按一般数值比较
-f, --ignore-case 排序时,将小写字母视为大写字母。
-i , --ignore-nonprinting 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
-m , --merge 将几个排序好的文件进行合并。
-M , --month-sort 将前面3个字母依照月份的缩写进行排序。
-h, --human-readable 以可读性较高的方式来显示信息;
-n, --numeric-sort 依照数值的大小排序。
-u , --unique 意味着是唯一的(unique),输出的结果是去完重了的。
-o<输出文件> 将排序后的结果存入指定的文件。
-r 以相反的顺序来排序。
-R, --random-sort
–random-source=FILE 按密钥的随机散列排序
-t<分隔字符> 指定排序时所用的栏位分隔字符。
-k, --key=KEYDEF 通过键排序;KEYDEF给出位置和类型
-o, --output=FILE 将结果写入文件而不是标准输出
-s, --stable 通过禁用最后的比较来稳定排序
-S, --buffer-size=SIZE 使用主内存缓冲区大小
-t, --field-separator=SEP 使用SEP代替非空到空转换
-T, --temporary-directory=DIR 将DIR用于临时变量,而不是$TMPDIR或/tmp;
多个选项指定多个目录
-u, --unique 与-c一起,检查是否严格排序;
没有-c,则只输出相等运行的第一个
-z, --zero-terminated 以0字节结束行,而不是换行
+<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
–help 显示帮助。
–version 显示版本信息。

# 三、使用示例

# 1、默认安装字母排序

[root@~test ~]# cat word.txt  
one  
two  
two  
three  
four  
[root@~test ~]# sort word.txt  
four  
one  
three  
two  
two
1
2
3
4
5
6
7
8
9
10
11
12

# 2、安装数字大小排序

[root@~test ~]# cat num.txt  
10  
8  
20  
100  
4  
[root@~test ~]# sort -n num.txt  
4  
8  
10  
20  
100
1
2
3
4
5
6
7
8
9
10
11
12

# 3、去重后排序

[root@~test ~]# sort -u word.txt  
four  
one  
three  
two
1
2
3
4
5

# 4、按照降序排序

[root@~test ~]# sort -ur word.txt  
two  
three  
one  
four
1
2
3
4
5

# 5、文件夹大小排序

在这里插入图片描述

# 6、指定分隔符并按照指定列排序

在这里插入图片描述

# 7、将排序结果输出到文件

[root@test ~]# sort -t ‘:’ -k 3 -nr /etc/passwd > /tmp/out.log  
[root@test ~]# cat /tmp/out.log  
1
2

在这里插入图片描述

上次更新时间: 9/25/2024, 1:19:15 AM