ITPub博客

首页 > Linux操作系统 > Linux操作系统 > sort命令

sort命令

原创 Linux操作系统 作者:keeking 时间:2010-02-26 09:12:08 0 删除 编辑
sort命令可以用來排序,如
$ sort names
Charlie
Emanuel
Fred
Lucy
Ralph
Tony
Tony
$
默認按升序排列,排序的依據是字符的編碼。
下面介紹一下sort的一些常用參數
1. -u 選項
該選項可以用來過濾重復項,如
$ sort -u names  >>>>相当于 sort | uniq
Charlie
Emanuel
Fred
Lucy
Ralph
Tony
$
2. -r 選項
該選項可以按相反的方向進行排序,如
$ sort -r names                                       
Tony
Tony
Ralph
Lucy Fred
Emanuel
Charlie
$
3. -o 選項
該選項可以指定將排序的結果保存到那里,也許有人會說,我們可以使用輸出重定向完成呀,的確,輸出重定向可以完成,如sort  names > file,但是如果我們想將排序的結果寫回到原文件時,輸出重定向就不行了,如 sort  names > names,此時names文件已經沒有內容了,內容被完全擦出了,像這種情況,我們就可以使用-o選項來完成。
4.
-n 選項
該選項可以指定將某列按數字對待,然后根據該列排序,如data文件
$ cat data
5 27
2 12
3 33
23 2
-5 11
15 6
14 -9
$
如果我們想將結果按第一行的數字排序,此時我們就可以使用-n選項
$ sort -n data
 -5 11
2 12
3 33
5 27
14 -9
15 6
23 2
$
 sort -k2 wos  按第二列排序
 sort -k3 wos  按第二列排序

语法解释:

  sort -t, -k1   

 -t,   指定文件记录域分隔符为","  

 -k1  是指根据第1列进行排序


如果我們想按第二列的數字排序呢,應該怎么做,這個也可以在n的前面加上數字來完成。如sort  +1n data 就會將第一列忽略,按照第二列的數字來排序,同理,sort  +5n data會忽略前五列,按第六列排序。那么列是如何區分的呢,默認的sort是按空格個或TAB來區分的,如果我們的文件不是按空格或TAB呢,這時候我們就要指定使用什么來分割,可以使用-t選項來指定分割的字符,如sort +2n -t: file,此時sort將會使用:來分割列,并忽略前兩列,按第三列排序。看下面的例子

$ sort +1n data
14 -9
23 2
15 6
-5 11
2 12
5 27
3 33
$




来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7899089/viewspace-627894/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-07-23

  • 博文量
    194
  • 访问量
    287361