Linux之sort命令

來源:互聯網
上載者:User

1、sort的工作原理

sort將檔案的每一行作為一個單位,相互比較,比較原則是從首字元向後,依次按ASCII碼值進行比較,最後將他們按升序輸出。

# cat file.txtbananaapplepearorangepear

2、sort的-u選項:輸出行中去除重複行

# sort -u file.txtapplebananaorangepear

3、sort的-r選項:降序

# sort -r file.txtpearorangebananaapple

4、sort的-o選項:重新導向檔案

# sort -r file.txt -o sorted.txt

5、sort的-n選項:已數字來進行排序

# cat number.txt51101243# sort -n number.txt13451012

6、sort的-t選項和-k選項

# cat fruit.txtbanana:30:5.5apple:10:2.5pear:90:2.3orange:20:3.4

上述檔案有三列,列與列之間用冒號隔開了。第一列表示水果類型、第二列表示水果數量、第三列表示水果價格。

那麼我想以水果數量來排序,也就是以第二列來排序,如何利用sort實現?

sort提供了-t選項,後面可以設定間隔符。(是不是想起了cut和paste的-d選項,共鳴~~)

指定了間隔符之後,就可以用-k來指定列數了。

# sort -n -k 2 -t : fruit.txtapple:10:2.5orange:20:3.4banana:30:5.5pear:90:2.3

在使用-k選項的時候需要注意的事情:

# sort -n -k 2 -k 3 -t : fruit.txt
apple:10:2.5orange:20:3.4banana:30:5.5pear:90:2.3 

-k可以使用過個,上列命令其意思是,當以第二列排序時,遇到相同的話,就已第三列繼續排序,預設的是已第一列。

# sort -k 1.2,1.2 -t : fruit.txtbanana:30:5.5pear:90:2.3apple:10:2.5orange:20:3.4 

由於只對第二個字母進行排序,所以我們使用了-k1.2,1.2的表示方式,表示我們“只”對第二個字母進行排序。(如果你問“我使用-k1.2怎麼不行?”,當然不行,因為你省略了End部分,這就意味著你將對從第二個字母起到本域最後一個字元為止的字串進行排序)。

7、sort的-f選項:忽略大小寫

該命令很簡單就不此描述了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.