概述
对于运维的朋友,sort命令相信都不会陌生,今天简单做个介绍,sort命令用于将文本文件内容加以排序,将输入行按照键值字段与数据类型选项以及locale排序。
下面介绍下相关的参数和一些实例,带大家复习下这方面内容~
功能
将文本文件内容加以排序。
语 法:
sort [options] [file(s)]
补充说明:sort可针对文本文件的内容,以行为单位来排序。
参数:
-b 忽略每行前面开始出的空格字符。 -c 检查文件是否已经按照顺序排序。 -d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。 -f 排序时,将小写字母视为大写字母。 -i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。 -m 将几个排序好的文件进行合并。 -M 将前面3个字母依照月份的缩写进行排序。 -n 依照数值的大小排序。 -o 将排序后的结果存入指定的文件。 -r 以相反的顺序来排序。 -t 指定排序时所用的栏位分隔字符。 +- 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。 --help 显示帮助。 --version 显示版本信息
实例
下面通过几个例子来讲述Sort的使用。
1、sort命令对text文件中各行排序后输出其结果
在原文件的第二、三行上的第一个单词完全相同,该命令将从它们的第二个单词vegetables与fruit的首字符处继续进行比较。
用户可以保存排序后的文件内容,或把排序后的文件内容输出至打印机。下例中用户把排序后的文件内容保存到名为result的文件中。
$ sort text>result
2、以字段排序
以冒号隔开的第一个字段:用户名称进行排序
sort -t: -k1,1 /etc/passwd
3、根据多个关键字排序
sort -t : -n -k 5b,5 -k 3,3 /etc/passwd
由于第一个关键字已经有了一个修饰符b,所以sort命令会认为第1个关键字不再需要修饰符,只将-n选项作用于第2个关键字-k 3,3
稳定排序:在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变
4、把排序结果输出到原文件中
sort -r test.txt -o sort.txt
5、去除重复行
sort -u test.txt
工作中其实经常用的比较多是用awk、xargs跟sort去做一些结合,后面小编会分享更多linux一些命令方面的内容,感兴趣的朋友可以关注一下~