Linux之關于sort命令的使用詳解

sort是在sort里非常常用的一個命令,將文件的每一行作為一個單位,相互比較,比較原則是從首字符向后,依次按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 ?在輸出行中去除重復行, 不改變文件本身內容

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享