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​