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 | 只有唯一的记录:丢弃所有具相同键值的记录,只留其中的第一条,去掉重复的记录。 |
sort 会读取指定的文件,如果未给定文件,则读取标准输入,再将排序好的数据写到标准输出。
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
以冒号隔开的第一 个字段,用户名进行排序
本文详细介绍了sort命令的使用方法,包括其基本语法、常用选项及其功能,例如如何通过-b、-c、-d等选项实现不同需求的排序。此外,还特别讲解了如何利用-k选项按字段进行排序,并给出了具体的实例。
5248

被折叠的 条评论
为什么被折叠?



