sort命令
主要用于对文本内容进行排序
sort [-bcfMnrtku][源文件][-o 输出文件]
-b 忽略每行前面开始出的空格字符。
-c 检查文件是否已经按照顺序排序。
-f 排序时,忽略大小写字母。
-M 将前面3个字母依照月份的缩写进行排序。
-n 依照数值的大小排序。
-o<输出文件> 将排序后的结果存入指定的文件。
-r 以相反的顺序来排序。
-t<分隔字符> 指定排序时所用的栏位分隔字符。
-k 选择以哪个区间进行排序
-u 删除重复行
sort处理文件的时候是以行为单位,相互比较,原则是从首字符依次向后,依次按ASCII码值进行比较,最后将他们按升序输出
[jeck@localhost~]$ cat test dddddddddddddd ccccccccccc eeeeeeeeee aaaaaaaa bbbbbbb abcd bcd 3 2 5 1 4 [jeck@localhost~]$ sort test 1 2 3 4 5 aaaaaaaa abcd bbbbbbb bcd ccccccccccc dddddddddddddd eeeeeeeeee
删除重复行 -u
[jeck@localhost~]$ cat test bbbbb aaaaa cccccc bbbbb bbbbbaa aaaaa [jeck@localhost~]$ sort -u test aaaaa bbbbb bbbbbaa cccccc
降序排列 -r
[jeck@localhost~]$ sort -ur test cccccc bbbbbaa bbbbb aaaaa
把输出结果存到另一个文件中
一般情况下用‘>‘即可重定向到另一个文件,但是需要直接修改本文件时,用‘>‘就会把原文件清空,所以需要用到-o参数 [jeck@localhost~]$ cat test bbbbb aaaaa cccccc bbbbb bbbbbaa aaaaa [jeck@localhost~]$ sort -ur test > 1.txt [jeck@localhost~]$ cat 1.txt cccccc bbbbbaa bbbbb aaaaa [jeck@localhost~]$ cp test test1 [jeck@localhost~]$ sort -ur test > test ---->定向到原文件 [jeck@localhost~]$ cat test 空 [jeck@localhost~]$ sort -ur test1 -o test1 [jeck@localhost~]$ cat test1 cccccc bbbbbaa bbbbb aaaaa
使用数值来排序 -n
默认sort会以行首第一个字符作比较排序,但是,当出现多位数字作比较时候,就得加-n,否则比较不成功 [jeck@localhost~]$ sort test 1 10 12 14 2 3 4 5 会发现排序不对,现在加上-n [jeck@localhost~]$ sort -n test 1 2 3 4 5 10 12 14
指定间隔符(-t)和列数(-k)进行排序
[jeck@localhost~]$ cat test 一月192.168.254.1 109 二月192.168.254.2 201 三月192.168.254.4 344 现在要按访问次数从大到小排序,以空格为分隔符,指定比较第三列 [jeck@localhost~]$ sort -n -r -k 3 -t ‘ ‘ test 三月192.168.254.4 344 二月192.168.254.2 201 一月192.168.254.1 109
本文出自 “Study-Everyday” 博客,请务必保留此出处http://studys.blog.51cto.com/9736817/1672914
原文地址:http://studys.blog.51cto.com/9736817/1672914