首頁 >運維 >linux運維 >Linux關於sort指令的使用詳解

Linux關於sort指令的使用詳解

黄舟
黄舟原創
2017-06-07 10:13:571778瀏覽

sort是在Linux裡非常常用的一個指令,將檔案的每一行當作一個單位,相互比較,比較原則是從首字向後,依序按ASCII碼值進行比較,最後將他們按升序輸出。

這裡有一個檔案test,內容為:

8723 23423
321324 213432
23 234
123 231
234 1234
654 345234

1. sort的-t選項和-k選項

sort提供了-t選項,後面可以設定間隔符, -k來指定列數。

對第一列排序

sort test

對第二列進行排序

sort -k 2 test

如果將test檔案的內容改為:

8723,23423
321324,213432
23,234
123,231
234,1234
654,345234

如果要對第二列依照大小排序

sort -t "," -k 2 test

如果沒有-t選項的話,就是預設的空格或tab鍵,因此上面就沒有使用-t選項。

2. 倒序排列使用-r 選項

sort預設的排序方式是升序,-r參數則是改成降序

sort -r test

輸出結果:

8723 23423
654 345234
321324 213432
234 1234
23 234
123 231

3. sort的-n選項

sort預設按ASCII碼值比較, 所以大家看上面2的結果會發現, 8723 比321324 卻排在最前面了。 那我們要如何讓它按照數字大小排序呢?這時候就該-n參數出場了。

sort -n test

輸出結果:

23 234
123 231
234 1234
654 345234
8723 23423
321324 213432
sort -rn test

輸出結果:

321324 213432
8723 23423
654 345234
234 1234
123 231
23 234

附:sort指令參數詳解

-f  將小寫字母都轉換為大寫字母來進行比較,亦即忽略大小寫

-c  檢查文件是否已排好序,如果亂序,則輸出第一個亂序的行的相關信息,最後返回1

-C  檢查檔案是否已排好序,如果亂序,不輸出內容,只回傳1

-M  以月份來排序,例如JAN小於FEB等等

-b  忽略每一行前面的所有空白部分,從第一個可見字元開始比較

-u  在輸出行中移除重複行, 不改變檔案本身內容

以上是Linux關於sort指令的使用詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn