码迷,mamicode.com
首页 > 其他好文 > 详细

sort命令

时间:2015-07-10 16:51:16      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:linux sort 命令

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

sort命令

标签:linux sort 命令

原文地址:http://studys.blog.51cto.com/9736817/1672914

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!