Linux中文字處理工具之sort命令詳解

2022-09-26 15:42:16 字數 4140 閱讀 7869

前言

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...