linux sort 命令實用手冊

2022-01-10 07:38:33 字數 3457 閱讀 4796

linux 中的sort命令是乙個很實用的工具,用於對文字內容為單位進行ascii 碼排序,預設按照公升序進行排序(當然也可以按照降序)。

sort命令的格式如下:

sort `引數` `檔名`
這裡不打算介紹其完整的使用方法,只介紹其重用方法,其完整手冊可參看man sort

比如,我們有如下文字內容,可以看到其內容是無序的,其中有兩行333bbb

>>> cat log.txt 

_______________

555333

2222

666333

bbbccc

aaaccc

bbb

使用sort命令,不加任何引數,對該檔案進行排序,如下,可看到已按照ascii 碼進行了排序:

>>> sort log.txt 

________________

2222

333333

555666

cccaaa

bbbbbb

ccc

使用-f引數可以忽略字元大小寫進行排序,注意觀察ccc的位置:

>>> sort -f log.txt

___________________

2222

333333

555666

aaabbb

bbbccc

ccc

使用-r引數可以進行反向排序:

>>> sort -r log.txt 

___________________

cccbbb

bbbaaa

ccc666

555333

3332222

使用-u引數,可以對重複行進行去重,可以看到只剩下一行333bbb

>>> sort -u log.txt 

___________________

2222

333555

666ccc

aaabbb

ccc

使用-o引數,可以將排序結果寫到某個檔案(也可以是原檔案),如下,將檔案內容輸出到log.txt2

sort -u log.txt -o log.txt2
使用-n引數,可以將排序結果按照數字大小進行排序,可以看到2222排在了666下面,這裡只關心數字之間的次序就行(不需要關心字母數字的關係):

>>> sort -n log.txt

___________________

aaabbb

bbbccc

333333

555666

2222

sort命令還可以對行內容,先進行分割,再按照某列進行排序,這時需要用到-t-k引數。

-t引數用於設定以什麼字元為分隔符,-k引數用於以分割後的哪一列進行排序,如果沒有設定,缺省會按照第一列進行排序。

比如,我們有如下內容,每行內容以逗號,分割,注意第4行只有一列ddd

>>> cat log2.txt 

________________

bbb,333

aaa,2222

ccc,66

ddd,

bbb,555

我們以逗號,進行分割,並按照第一列進行排序,如下:

>>> sort -t , log2.txt 

______________________

aaa,2222

bbb,333

bbb,555

ccc,66

ddd,

按照第一列的第二個字元開始排序,如下1.2表示從第一列的第二個字元開始排序:

>>> sort -t , -k 1.2 log2.txt

_____________________________

aaa,2222

bbb,333

bbb,555

ccc,66

ddd,

按照第二列,並以數字大小進行排序,如下:

>>> sort -t , -k 2 -n log2.txt 

——————————————————————————————

ddd,

ccc,66

bbb,333

bbb,555

aaa,2222

先按照第二列,再按照第一列進行排序,如下:

>>> sort -t , -k 2 -k 1  log2.txt 

_________________________________

ddd,

aaa,2222

bbb,333

bbb,555

ccc,66

下面總結一下以上講到的引數及其含義:

引數含義

-f

將小寫字母視為大寫字母,即忽略大小寫

-r

反向排序

-u

去重-o

輸出到檔案

-n

以數字大小進行排序

-t

設定分隔符

-k

設定按照第幾列排序,與-t引數配合使用

(完。)

linux uniq 命令實用手冊

linuxuniq命令用於處理文字內容中的重複行。這裡我們只介紹其常用引數,其完整用法可參見man uniq。例如,我們有如下檔案內容 cat log.txt hello hello world world hello使用uniq命令,不加任何引數處理,注意,這裡的兩行hello並沒有相鄰,所以最終...

Rcpp實用手冊

c 對應於r的資料型別有如下這些 double numeric int integer string character logical bool 在c 中可以直接使用r的物件有 所有算術邏輯運算子都是可以向量化的 pow,include using namespace rcpp rcpp expo...

tar 實用手冊

url tar 命令用來將很多檔案打包成乙個單一的磁帶或者磁碟歸檔,並可從歸檔檔案恢復出檔案列表。當你需要通過 email 傳送大量檔案時或者傳輸檔案時非常有用。這裡我們介紹一些基本的使用場景。tar 的語法 tar options file.tar file1 file2 file.tar 是 t...