Shell的sort
2016-06-22 11:37
190 查看
1 sort用法
sort 可以对文本文件进行排序,使用用法:语法:
sort [ options ] [ file(s) ]
用途:
将输入行按照键值字段与数据类型选项以及locale排序
options的主要选项:
选项 | 说明 |
-b | 忽略开头的空白 |
-c | 检查输入是否已正确地排序。如输入未经排序,但退出码(exit code)为非零值,则不会有任何输出。 |
-d | 字典顺序:仅文字数字与空白才有意义 |
-g | 一般数值:以浮点数字类型比较字段。这个选项的动作有点类似 -n,差别仅在于这个选项的数字可能有小数点及指数(例:6.022e+23)。仅GNU版本提供些功能。 |
-f | 将混用的字母都看作相同大小写,也就是以不管字母大小 写的方式排序 |
-i | 忽略无法打印的字母 |
-k | 定义排序键值字段 |
-m | 将已排序的输入文件,合并为一个排序后的输出数据流 |
-n | 以整数类型比较排序 |
-o outfile | 将输出写到指定的文件,而非标准输出。如果该文件为输入文件之一,则sort在进行排序与写到输出文件之前,会先将它复制到一个临时的文件。 |
-r | 设置排序是倒序,如果不设置此选项,则是默认的升序 |
-t char | 使用单个字符 char 字段作为默认的字段分隔字符,取代默认的空白字符 |
-u | 只有唯一的记录:丢弃所有具相同键值的记录,只留其中的第一条,去掉重复的记录。 |
3 以字段排序
在sort命令中,以字段来排序,一般以 -k 选项来指定排序字段, 而且使用 -t 来指定字段的分界符。如果没有指定 -t 选项,则以空白作为分界符而且记录内的开关和结尾的空白都忽略不记。一般 -k 选项后面跟着是一个字段编号,或是一对数字。
如果 -k 仅指定一个字段编号,则排序键值会从该字段开始,一直继续到记录的结尾(不是字段的结尾)
如果 -k 是指定一对用逗号分隔的数字,则键值将由第一字段值的起始处开始,结束于第二个字段值的结尾。
如果使用点号分隔,如:
-k2.4, 5.6
则是表示从第2个字段的第4个字符开始比较,一直比较到第5个字段的第6个字符。
当出现多个 -k 选项时,会先从第一个键值的字段开始排序,找出匹配的该键值的记录后,再进行第二个键值字段的排序,以此类推。
例子
sort -t: -k4n -k3n /etc/passwd
先以第4列按整数排序,排序出来的结果再以第3列以整数进行排序
例子
> sort -t: -k1,1 /etc/passwd abrt:x:173:173::/etc/abrt:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin apache:x:48:48:Apache:/var/www:/sbin/nologin avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin
以冒号隔开的第一 个字段,用户名进行排序
相关文章推荐
- linux shell脚本读取用户输入的参数
- Shell脚本return、echo、printf
- jmeter BeanShell实例-----两个变量之间的断言对比
- 使用ant直接执行shell命令
- c 嵌入 shell
- shell --- 相关简单程序规整
- 使用powershell远程传输文件
- xshell 缺少MSVCP110.dll
- shell 脚本各种执行方式(source ./*.sh, . ./*.sh, ./*.sh)的区别
- Shell使用技巧
- shell脚本:简单的分数记录系统
- shell基本应用(二)shell变量的使用
- shell知识点整理
- shell--流程控制
- shell脚本练习题
- shell--输入输出
- shell--表达式和运算符
- shell基本类型和参数传递
- shell变量
- shell使用