一、命令简介
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