linux命令之----sort命令用于将文本文件内容加以排序
1、sort命令作用
sort命令用于将文本文件内容加以排序,将输入行按照键值字段与数据类型选项以及locale排序。
一个可预期的记录次序,会让用户的查看使用更方便:书的索引、字典、目录以及电话簿等,如果没有次序依据就毫无价值,排序后的记录更易于程序化,也更有效率。
2、sort命令语法
语法
sort [options] [file(s)]
参数:
- -b 忽略开头的空白
- -c 检查输入是否已正确的排序。如果输入未经排序,返回退出码非零值
- -d 字典顺序:仅文字数字与空白才有意义
- -g 一般数值:以浮点数字类型比较字段。
- -f 将混用的字母都看作相同大小写,不区分大小写
- -i 忽略无法打印的字符
- -k 定义排序键值字段
- -m 将几个排序好的文件进行合并。
- -M 将前面3个字母依照月份的缩写进行排序。
- -n 依照数值的大小排序。
- -o<输出文件> 将排序后的结果存入指定的文件。
- -r 以相反的顺序来排序。
- -t<分隔字符> 指定排序时所用的栏位分隔字符。
- +<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
- --help 显示帮助。
- --version 显示版本信息。
sort会读取指定的文件,如果未给定文件,则读取标准输入,再将排序好的数据写至标准输出。
3、sort案例
1)以字段排序
(1)以冒号隔开的第一个字段:用户名称进行排序
sort -t: -k1,1 /etc/passwd
(2)以冒号隔开,先以第四段进行排序,然后以第三段进行排序,展示出来(从1开始计数)
sort -t: -k4n,-k3n /etc/passwd
2)把排序结果输出到原文件中
sort -r test.txt -o test.txt
3)去除重复行
sort -u test.txt