欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux基础命令---sort

程序员文章站 2022-10-31 16:57:46
sort 以行为单位,对文本文件进行排,并输出排序结果。默认情况下,以每一行为一个单位,从首字符开始按照ASCII码向后逐个比较。 此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。 1、语法 sort [选项] file sort [O ......

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