qq:78080458 学习交流群:150633458
分类: LINUX
2018-11-26 16:26:07
sort
以行为单位,对文本文件进行排,并输出排序结果。默认情况下,以每一行为一个单位,从首字符开始按照ASCII码向后逐个比较。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、语法
sort [选项] file
sort [OPTION]... --files0-from=F
2、选项列表
选项 |
说明 |
--help |
显示帮助文档 |
--version |
显示版本信息 |
-b |
忽略每行开头的空白字符 |
-d | --dictionary-order |
排序时只考虑空格、数字、英语字母 |
-f | --ignore-case |
将小写字母改为大写 |
-g | --general-numeric-sort |
按一般数值比较 |
-i | --ignore-nonprinting |
只考虑040到176之间的ASCII字符 |
-M | --month-sort |
按月份排序 |
-h | --human-numeric-sort |
按可读性数据排序,例如1K,2G |
-n | --numeric-sort |
按数值大小排序 |
-R | --random-sort |
按键的随机散列排序 |
--random-source=FILE |
从文件中获取随机字节 |
-r | --reverse |
逆序排列 |
--sort=WORD |
按给出的要求排序:general-numeric -g, human-numeric -h, month -M, numeric -n, random -R, version -V |
-V | --version-sort |
按版本数字排序 |
--batch-size=NMERGE |
最多一次合并NMERGE个输入;更多地使用temp文件 |
-c | --check | --check=diagnose-first |
检测是否已排序,不排序 |
-C | --check=quiet | --check=silent |
和“-c”一样,不要报告第一个坏行 |
--compress-program=PROG |
用prog压缩时间,用prog-d解压 |
--files0-from=F |
从文件F中以NUL结尾的名称指定的文件读取输入;如果F是-,则从标准输入中读取名称。 |
-k | --key=POS1[,POS2] |
在POS 1(起始1)处启动键,在POS 2(默认行尾)结束键 |
-m | --merge |
合并已经排序的文件,不排序 |
-o | --output=file |
将结果输出到指定文件 |
-s | --stable |
通过禁用最后的比较来稳定排序 |
-S | --buffer-size=SIZE |
主内存缓冲器使用SIZE |
-t | --field-separator=SEP |
使用sep代替分隔符 |
-T | --temporary-directory=DIR |
将DIR用于临时目录,而不是$TMPDIR或/tmp;多个选项指定多个目录 |
-u, --unique |
和“-c”一起使用,检查是否有严格的排序;如果没有-c,则只输出相同运行的第一个。 |
-z, --zero-terminated |
结束行为0字节,而不是换行符 |
3、实例
1)直接排序
[root@192 weijie]# cat 1.c 1K 1M 1G 1T [root@192 weijie]# sort 1.c //直接对比字符排序 1G 1K 1M 1T |
2)按照可读的单位来排序
[root@192 weijie]# sort -h 1.c //文件的内容按照单位排序,这些很明显是内存大小单位 1K 1M 1G 1T |
3)按照数字排序
[root@192 weijie]# cat 2.c 123 23 212 [root@192 weijie]# sort 2.c //默认排序,按照字符逐个比较 123 212 23 [root@192 weijie]# sort -n 2.c //把内容当做数字排序 23 123 212 |