您的位置:首页 > 其它

sort与uniq

2016-09-24 18:19 169 查看

sort

sort命令进行排序,其语法及常用参数格式:

sort [-bcfMnrtk][源文件][-o 输出文件]


补充说明:sort可针对文本文件的内容,以行为单位来排序。

参数:

-b     忽略每行前面开始出的空格字符。
-c     检查文件是否已经按照顺序排序。
-f     排序时,忽略大小写字母。
-M     将前面3个字母依照月份的缩写进行排序。
-n     依照数值的大小排序。
-o <输出文件>     将排序后的结果存入指定的文件。
-r     以相反的顺序来排序。
-t <分隔字符>     指定排序时所用的栏位分隔字符。
-k     选择以哪个区间进行排序。


示例:

$ cat test.txt
java    10  5.0
scala   9   6.0
spark   11  4.0
scala   9   6.0
java    9   5.5


sort:从首字符向后,依次按ASCII码值进行比较,最后按升序输出

$ sort test.txt
java    10  5.0
java    9   5.5
scala   9   6.0
scala   9   6.0
spark   11  4.0


sort –u:输出行中去除重复行

$ sort -u test.txt
java    10  5.0
java    9   5.5
scala   9   6.0
spark   11  4.0


sort –r:sort默认的排序方式是升序,-r表示降序

$ sort -r test.txt
spark   11  4.0
scala   9   6.0
scala   9   6.0
java    9   5.5
java    10  5.0


sort –o:sort默认是把结果输出到标准输出,所以需要用重定向才能将结果写入文件,如果想把排序结果输出到原文件中,可以使用-o

$ sort test.txt -o test.txt
$ cat test.txt
java    10  5.0
java    9   5.5
scala   9   6.0
scala   9   6.0
spark   11  4.0


sort –n:要以数值来排序

sort的-t选项和-k选项:sort提供了-t选项,后面可以设定间隔符。指定了间隔符之后,就可以用-k来指定列数排序,默认是”\t”分隔。

$ cat test.txt
java    10  5.0
scala   9   6.0
java    9   5.5
spark   11  4.0
scala   10  6.0

$ sort -k 1 -k 2 -k 3 test.txt
java    10  5.0
java    9   5.5
scala   10  6.0
scala   9   6.0
spark   11  4.0


uniq

用法:uniq [选项]… [文件]

从输入文件或者标准输入中筛选相邻的匹配行并写入到输出文件或标准输出。不附加任何选项时匹配行将在首次出现处被合并。

-c, --count     //在每行前加上表示相应行目出现次数的前缀编号
-d, --repeated     //只输出重复的行
-D, --all-repeated     //只输出重复的行,不过有几行输出几行
-f, --skip-fields=N     //-f 忽略的段数,-f 1 忽略第一段
-i, --ignore-case     //不区分大小写
-s, --skip-chars=N     //根-f有点像,不过-s是忽略,后面多少个字符 -s 5就忽略后面5个字符
-u, --unique     //去除重复的后,全部显示出来,跟mysql的distinct功能上有点像
-z, --zero-terminated     //end lines with 0 byte, not newline
-w, --check-chars=N     //对每行第N 个字符以后的内容不作对照
--help     //显示此帮助信息并退出
--version     //显示版本信息并退出
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: