Linux命令之sort命令
Linux sort命令用于将文本文件内容加以排序。sort可针对文本文件的内容,以行为单位来排序。shell中sort命令有3中执行模式,分别是排序文本,检查文件是否已经排序,合并文件。
一、命令简介
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 | 获取版本信息 |
更多推荐
所有评论(0)