一、命令简介
Linux sort命令用于将文本文件内容加以排序。sort可针对文本文件的内容,以行为单位来排序。shell中sort命令有3中执行模式,分别是排序文本,检查文件是否已经排序,合并文件。
二、使用示例
1、默认按照第一列的ASCII 码次序排序
2、按照数字排序
使用-n参数按照数字排序
[root@test1 tmp]# cat 1.log
4 a
10 b
1 c
[root@test1 tmp]# cat 1.log |sort -n
1 c
4 a
10 b
3、指定列排序
使用-k参数指定列排序,例如指定第8列时间进行排序
[root@test1 tmp]# ll -h |sort -k 8
total 99M
-rw-r–r–. 1 wuhs wuhs 125 Feb 19 10:01 2.log
-rw-r–r–. 1 root root 2.4K Feb 19 10:10 3.log
-rw-r–r–. 1 root root 183 Feb 19 10:25 4.log
-rw-r–r–. 1 root root 19 Feb 19 10:47 5.log
-rw-r–r–. 1 root root 425K Feb 9 13:46 s125.test1.sql
-rw-r–r–. 1 wuhs wuhs 0 Feb 19 14:04 1.log
-rw-r–r–. 1 root root 98M Feb 9 14:07 s125.test2.sql
4、排序后去重
使用-u参数去重
[root@test1 tmp]# cat 2.log
序号 企业名称 公网IP地址
1 国海证券 113.16.174.228
3 兴业证券 61.154.12.206
2 平安证券 211.157.16.114
3 兴业证券 61.154.12.206
[root@test1 tmp]# cat 2.log |sort -u
1 国海证券 113.16.174.228
2 平安证券 211.157.16.114
3 兴业证券 61.154.12.206
序号 企业名称 公网IP地址
5、按照文件大小进行排序
使用-h参数,按照人类习惯阅读方式比较文件大小
6、排序取反
使用-r参数取反,即改为降序排序
[root@test1 tmp]# cat 5.log
1 test 1
2 test2 2
[root@test1 tmp]# cat 5.log |sort -r
2 test2 2
1 test 1
7、自定义分隔符后指定列排序
使用-t参数自定义分隔符
[root@test1 tmp]# cat 4.log |sort -t “:” -k 5,使用:作为分隔符,以第5列的值排序
8、将两个文件合同同时对合并后的内容排序
[root@test1 tmp]# sort 2.log 5.log > 6.log
[root@test1 tmp]# cat 6.log
1 test 1
1 国海证券 113.16.174.228
2 test2 2
2 平安证券 211.157.16.114
3 兴业证券 61.154.12.206
3 兴业证券 61.154.12.206
序号 企业名称 公网IP地址
三、参数说明
1、语法格式
- sort [OPTION]… [FILE]…
- sort [OPTION]… –files0-from=F
2、参数说明
| 参数 | 说明 |
|---|---|
| -b, –ignore-leading-blanks | 忽略前面空格。 |
| -d, –dictionary-order | 根据字典顺序排序,仅比较数字 字母 空格等字符。 |
| -f, –ignore-case | 忽略大小写。 |
| -g, –general-numeric-sort | 按一般数值比较 |
| -i, –ignore-nonprinting | 仅比较可打印字符。 |
| -M, –month-sort | 月份 |
| -h, –human-numeric-sort | 使用易读性数字(例如: 2K 1G) |
| -n, –numeric-sort | 纯数字排列 |
| -R, –random-sort | 根据哈希值随机排序。 |
| –random-source=FILE | 从文件中获取随机字节 |
| -r, –reverse | 降序排序,默认为升序 |
| –sort=WORD | 按单词排序: |
| -V, –version-sort | 按照文本中的自然编号排序 |
| –batch-size=NMERGE | 使用临时文件一次最多合并n个合并输入 |
| -c, –check, –check=diagnose-first | 检查已排序的输入;不排序 |
| -C, –check=quiet, –check=silent | 与-c参数类似,但是不报告第一行错误 |
| –compress-program=PROG | 用PROG压缩临时文件,用PROG-d解压临时文件 |
| –debug | debug,用于排查错误用法 |
| –files0-from=F | 从指定的文件读取输入,文件F中以NUL结尾的名称; |
| -k, –key=KEYDEF | 通过键排序;KEYDEF给出位置和类型 |
| -m, –merge | 合并已排序的文件;不排序 |
| -o, –output=FILE | 将结果写入文件而不是标准输出 |
| -s, –stable | 通过禁用最后的比较来稳定排序 |
| -S, –buffer-size=SIZE | 使用主内存缓冲区大小 |
| -t, –field-separator=SEP | 使用SEP代替非空到空转换 |
| -T, –temporary-directory=DIR | 多个选项指定多个目录将DIR用于临时变量,而不是$TMPDIR或/tmp |
| –parallel=N | 将同时运行的排序数更改为N |
| -u, –unique | 与-c一起,检查是否严格排序;如果没有-c,则只输出相等运行的第一个 |
| -z, –zero-terminated | 如果没有-c,则只输出相等运行的第一个 |
| –help | 查看帮助 |
| –version | 获取版本信息 |
今天的文章Linux命令之sort命令分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/30516.html
![Linux命令之sort命令插图1 [root@test1 tmp]# cat 4.log |sortadm:x:3:4:adm:/var/adm:/sbin/nologinbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinroot:x:0:0:root:/root:/bin/bash](https://img.mushiming.top/app/bianchenghao_cn/3227c17f549348ea8fdc918c30d4055e.jpg)
![Linux命令之sort命令插图3 [root@test1 tmp]# cat 1.log1M200K1002G[root@test1 tmp]# cat 1.log |sort -h100200K1M2G](https://img.mushiming.top/app/bianchenghao_cn/7102b55a9be048d4a1a258b53e6a67cd.jpg)
