天天看點

Linux指令之sort指令一、指令簡介二、使用示例三、參數說明

一、指令簡介

  Linux sort指令用于将文本檔案内容加以排序。sort可針對文本檔案的内容,以行為機關來排序。shell中sort指令有3中執行模式,分别是排序文本,檢查檔案是否已經排序,合并檔案。

二、使用示例

1、預設按照第一列的ASCII 碼次序排序

Linux指令之sort指令一、指令簡介二、使用示例三、參數說明

2、按照數字排序

使用-n參數按照數字排序

[[email protected] tmp]# cat 1.log

4 a

10 b

1 c

[[email protected] tmp]# cat 1.log |sort -n

1 c

4 a

10 b

3、指定列排序

使用-k參數指定列排序,例如指定第8列時間進行排序

[[email protected] tmp]# ll -h |sort -k 8

total 99M

-rw-r–r--. 1 wuhs wuhs 125 Feb 19 10:01 2.log

-rw-r–r--. 1 root root 2.4K Feb 19 10:10 3.log

-rw-r–r--. 1 root root 183 Feb 19 10:25 4.log

-rw-r–r--. 1 root root 19 Feb 19 10:47 5.log

-rw-r–r--. 1 root root 425K Feb 9 13:46 s125.test1.sql

-rw-r–r--. 1 wuhs wuhs 0 Feb 19 14:04 1.log

-rw-r–r--. 1 root root 98M Feb 9 14:07 s125.test2.sql

4、排序後去重

使用-u參數去重

[[email protected] tmp]# cat 2.log

序号 企業名稱 公網IP位址

1 國海證券 113.16.174.228

3 興業證券 61.154.12.206

2 平安證券 211.157.16.114

3 興業證券 61.154.12.206

[[email protected] tmp]# cat 2.log |sort -u

1 國海證券 113.16.174.228

2 平安證券 211.157.16.114

3 興業證券 61.154.12.206

序号 企業名稱 公網IP位址

5、按照檔案大小進行排序

使用-h參數,按照人類習慣閱讀方式比較檔案大小

Linux指令之sort指令一、指令簡介二、使用示例三、參數說明

6、排序取反

使用-r參數取反,即改為降序排序

[[email protected] tmp]# cat 5.log

1 test 1

2 test2 2

[[email protected] tmp]# cat 5.log |sort -r

2 test2 2

1 test 1

7、自定義分隔符後指定列排序

使用-t參數自定義分隔符

[[email protected] tmp]# cat 4.log |sort -t “:” -k 5,使用:作為分隔符,以第5列的值排序
Linux指令之sort指令一、指令簡介二、使用示例三、參數說明

8、将兩個檔案合同同時對合并後的内容排序

[[email protected] tmp]# sort 2.log 5.log > 6.log

[[email protected] tmp]# cat 6.log

1 test 1

1 國海證券 113.16.174.228

2 test2 2

2 平安證券 211.157.16.114

3 興業證券 61.154.12.206

3 興業證券 61.154.12.206

序号 企業名稱 公網IP位址

三、參數說明

1、文法格式

  • sort [OPTION]… [FILE]…
  • sort [OPTION]… --files0-from=F

2、參數說明

參數 說明
-b, --ignore-leading-blanks 忽略前面空格。
-d, --dictionary-order 根據字典順序排序,僅比較數字 字母 空格等字元。
-f, --ignore-case 忽略大小寫。
-g, --general-numeric-sort 按一般數值比較
-i, --ignore-nonprinting 僅比較可列印字元。
-M, --month-sort 月份
-h, --human-numeric-sort 使用易讀性數字(例如: 2K 1G)
-n, --numeric-sort 純數字排列
-R, --random-sort 根據哈希值随機排序。
–random-source=FILE 從檔案中擷取随機位元組
-r, --reverse 降序排序,預設為升序
–sort=WORD 按單詞排序:
-V, --version-sort 按照文本中的自然編号排序
–batch-size=NMERGE 使用臨時檔案一次最多合并n個合并輸入
-c, --check, --check=diagnose-first 檢查已排序的輸入;不排序
-C, --check=quiet, --check=silent 與-c參數類似,但是不報告第一行錯誤
–compress-program=PROG 用PROG壓縮臨時檔案,用PROG-d解壓臨時檔案
–debug debug,用于排查錯誤用法
–files0-from=F 從指定的檔案讀取輸入,檔案F中以NUL結尾的名稱;
-k, --key=KEYDEF 通過鍵排序;KEYDEF給出位置和類型
-m, --merge 合并已排序的檔案;不排序
-o, --output=FILE 将結果寫入檔案而不是标準輸出
-s, --stable 通過禁用最後的比較來穩定排序
-S, --buffer-size=SIZE 使用主記憶體緩沖區大小
-t, --field-separator=SEP 使用SEP代替非空到空轉換
-T, --temporary-directory=DIR 多個選項指定多個目錄将DIR用于臨時變量,而不是$TMPDIR或/tmp
–parallel=N 将同時運作的排序數更改為N
-u, --unique 與-c一起,檢查是否嚴格排序;如果沒有-c,則隻輸出相等運作的第一個
-z, --zero-terminated 如果沒有-c,則隻輸出相等運作的第一個
–help 檢視幫助
–version 擷取版本資訊

繼續閱讀