前言
sort命令將每一行作為乙個單位進行比較,比較原則是從首字元向後,依次按ascii碼值進行比較,最後將他們按一定的順序進行輸出,實際上,sort命令可以被認為是乙個非常強大的資料治理工具,用來治理內容類似資料庫記錄的檔案。下面來一起看看吧。
一、sort實戰演練
sort.txt
root,x,0,0,root,/root,/bin/bash
daemon,x,1,1,daemon,/usr/sbin,/usr/sbin/nologin
bin,x,2,2,bin,/bin,/usr/sbin/nologin
bin,x,2,2,bin,/bin,/usr/sbin/nologin
sys,x,3,3,sys,/dev,/usr/sbin/nologin
number.txt
9890
822human_readable.txt
2k2g2m
20m實戰演練
輸出公升序排序檔案
> root@wing:~/wing # sort sort.txt
> bin,x,2,2,bin,/bin,/usr/sbin/nologin
> bin,x,2,2,bin,/bin,/usr/sbin/nologin
> daemon,x,1,1,daemon,/usr/sbin,/usr/sbin/nologin
> root,x,0,0,root,/root,/bin/bash
> sys,x,3,3,sys,/dev,/usr/sbin/nologin
>
>
輸出降序排序檔案
> root@wing:~/wing # sort -r sort.txt
> sys,x,3,3,sys,/dev,/usr/sbin/nologin
> root,x,0,0,root,/root,/bin/bash
> daemon,x,1,1,daemon,/usr/sbin,/usr/sbin/nologin
> bin,x,2,2,bin,/bin,/usr/sbin/nologin
> bin,x,2,2,bin,/bin,/usr/sbin/nologin
>
>
將sort檔案按照第三列公升序輸出
> root@wing:~/wing # sort -t , -k 3 sort.txt
> root,x,0,0,root,/root,/bin/bash
> daemon,x,1,1,dae
> bin,x,2,2,bin,/bin,/usr/sbin/nologin
> bin,x,2,2,bin,/bin,/usr/sbin/nologin
> sys,x,3,3,sys,/dev,/usr/sbin/nologin
>
>
去掉重複行降序輸出
> root@wing:~/wing # sort -ur sort.txt
> sys,x,3,3,sys,/dev,/usr/sbin/nologin
> root,x,0,0,root,/root,/bin/bash
> daemon,x,1,1,daemon,/usr/sbin,/usr/sbin/nologin
> bin,x,2,2,bin,/bin,/usr/sbin/nologin
>
二、sort常用引數
-b, –ignore-leading-blanks
忽略每一行開頭的空格,從第乙個不是空格的字元開始比較。
-c, –check, –check=diagnose-first
檢查檔案是否已經排序,如果沒有排序,則輸出第乙個未排序的行,如果已經排序,則返回1.
>root@wing:~/wing # sort -c sort.txt
>sort: sort.txt:2: disorder: daemon,x,1,程式設計客棧1,daemon程式設計客棧,/usr/sbin,/usr/sbin/nologin
>
-c, –check=quiet, –check=silent
與-c引數功能一致,不同的是,如果沒有排序,該引數並不會輸出第乙個未排序的行,二是什麼都不會輸出。
> root@wing:~/wing # sort -c sort.txt
> sort: sort.txt:2: disorder: daemon,x,1,1,daemon,/usr/sbin,/usr/sbin/nologin
> root@wing:~/wing #
>
-f, –ignore-case
忽略大小寫,將所有的小寫字母轉換為大寫字母進行比較。
-h, –human-numeric-sort
以人類可讀的方式排序,如對k,g進行排序。
> root@wing:~/wing # sort human_readable.txt
> 20m
> 2g
> 2k
> 2m
> root@wing:~/wing # sort -h human_readable.txt
> 2k
> 2m
> 20m
> 2g
>
-m, –month-sort
按月份排序,如jan,mar等等。
-n, –numeric-sort
將數字轉換為數值的方式排序。
> root@wing:~/wing # sort number.txt
> 2
> 8
> 82
> 9
> 90
> root@wing:~/wing # sort -n number.txt
> 2
> 8
> 9
> 82
> 90
>
-r, –random-sort
以隨機的方式進行排序。
> root@wing:~/wing # sort -r sort.txt
> daemon,x,1,1,daemon,/usr/sbin,/usr/sbin/nologin
> sys,x,3,3,sys,/dev,/usr/sbin/nologin
> root,x,0,0,root,/root,/bin/bash
> bin,x,2,2,bin,/bin,/usr/sbin/nologin
> bin,x,2,2,bin,/bin,/usr/sbin/nologin
>
> root@wing:~/wing # sort -r sort.txt
> root,x,0,0,root,/root,/bin/bash
> sys,x,3,3,sys,/dev,/usr/sbin/nologin
> daemon,x,1,1,daemon,/usr/sbin,/usr/sbin程式設計客棧/nologin
> bin,x,2,2,bin,/bin,/usr/sbin/nologi
> bin,x,2,2,bin,/bin,/usr/sbin/nologin
>
> root@wing:~/wing # sort -r sort.txt
> root,x,0,0,root,/root,/bin/bash
> bin,x,2,2,bin,/bin,/usr/sbin/nologin
> bin,x,2,2,bin,/bin,/usr/sbin/nologin
> daemon,x,1,1,daemon,/usr/sbin,/usr/sbin/nologin
> sys,x,3,3,sys,/dev,/usr/sbin/nologin
>
-r, –reverse
預設是公升序排序,加上-r引數是降序排序。
-o, –output=file
將sort命令的結果輸出到另乙個檔案中。
-u, –unique
和-c引數一起時,並沒有什麼用;
不與-c引數一起時,將所有的行去重後排序輸出。
-t, –field-separator
分隔符。
-k, –key
根據key去排序,可以是列的位置或者型別。
總結本文標題: linux中文字處理工具之sort命令詳解
本文位址:
Linux文字處理工具
linux中熟練的使用文字處理工具非常的重要,因為linux在設計的時候是採用一切皆檔案的哲學的,甚至連計算機中的配置也都使用偽檔案系統來表示,要查詢裡面的內容就是對檔案進行操作,所以學會使用檔案處理工具事半功倍。而在一切皆物件的windows中,因為物件封裝了所有的操作,包括顯示標準輸出的結果,使...
Linux 文字處理工具
tail f 執行tail f或tail f命令可以觀察檔案正在變化的內容 即跟蹤檔案的變化內容 檔案產生新內容時螢幕會顯示新增內容。seq n sort r head n 1 sort r命令能隨機排序。diff u file 1 file 2 file diff patch d file 1 f...
文字處理工具
參考 man,info,magedu講義 宣告 以下英文純屬個人翻譯,英文b級,歡迎糾正,以下內容純屬個人理解,並沒有對錯,只是參考,盜版不糾,才能有限,希望不誤人子弟為好。these commands read and write entire files,possibly transformin...