語法格式sort [ -a ] [ -b ] [ -c ] [ -d ] [ -f ] [ -i ] [ -m] [ -n ] [ -r ] [ -u ] [ -o outfile ]
[ -t character ] [ -t directory ] [ -y [ kilobytes ] ] [ -z recordsize ] [ [ + [ fskip ]
[ .cskip ] [ b ] [ d ] [ f ] [ i ] [ n ] [ r ] ] [ - [ fskip ] [ .cskip ] [ b ] [ d ] [ f ]
[ i ] [ n ] [ r ] ] ] [ -k keydefinition ] [檔案 ]
使用說明sort 命令對 file 引數指定的檔案中的行排序,並將結果寫到標準輸出。如果 file 引數指定多個檔案,
那麼 sort 命令將這些檔案連線起來,並當作乙個檔案進行排序。-(減號)代替檔名指定標準輸入。
如果您不指定任何檔名,那麼該命令對標準輸入排序。可以使用 -o 標誌指定輸出檔案。
如果不指定任何標誌,sort 命令基於當前語言環境的整理順序對輸入檔案的所有行排序。
主要引數-a 使用 ascii 整理順序代替當前語言環境的整理順序在逐字節的基礎上排序。
-b 忽略前導空格和製表符,找出欄位的第一或最後列。
-c 檢查輸入是否已按照標誌中指定的排序規則進行排序。如果輸入檔案排序不正確,就返回乙個非零值。
-d 使用字典順序排序。比較中僅考慮字母、數字和空格。
-f 比較前將所有小寫字母改成大寫字母。
-i 比較中忽略所有非顯示字元。
-k keydefinition 指定排序關鍵字。keydefinition 選項的格式為:
[ fstart [ .cstart ] ] [ modifier ] [ , [ fend [ .cend ] ][ modifier ] ]
排序關鍵字包括所有以 fstart 變數指定的字段和 cstart 變數指定的列開頭的字元及以 fend 變數指定的字段和
cend 變數指定的列結束的字元。modifier 變數的值可以是 b、d、f、i、n 或 r。修飾符與同一字母的標誌等價。
-m 只合併多個輸入檔案;假設輸入檔案已經排序。
-n 按算術值對數字字段排序。數字欄位可包含前導空格、可選減號、十進位制數字、千分位分隔符和可選基數符。
對包含任何非數字字元的字段進行數字排序會出現無法預知的結果。
-o outfile 將輸出指向 outfile 引數指定的檔案,而不是標準輸出。outfile 引數值可以與 file 引數值相同。
-r 顛倒指定排序的順序。
-t character 指定 character 為單一的字段分隔符。
-u 禁止按照排序關鍵字和選項的所有等同排序(每一組行中一行除外)。
-t directory 將建立的所有臨時檔案放入 directory 引數指定的目錄中。
-y[kilobytes] 用 kilobytes 引數指定的主儲存的千位元組數啟動 sort 命令,並根據需要增加儲存量。
(如果 kilobytes 引數指定的值小於最小儲存站點或大於最大儲存站點,就以這個最小儲存站點或最大儲存站點取代)。
如果省略 -y 標誌,sort 命令以預設的儲存大小啟動。
-y0 標誌用最小儲存啟動,而 -y 標誌(不帶 kilobytes 值)用最大儲存啟動。sort 命令使用的儲存量顯著地影響效能。
以大儲存量對小檔案排序將很浪費。
-z recordsize 如果正在排序的任一行大於預設的緩衝區大小,要防止出現異常終止。
指定 -c 或 -m 標誌時,省略排序階段,使用系統的預設緩衝大小。如果已排序行超出這一大小,排序異常終止。
-z 選項指定排序階段最長行的記錄,因而可在合併階段分配足夠的緩衝區。
recordsize 必須指明等於或大於要合併的最長行的位元組值。
應用例項
sort -t: +1 vegetables
此命令序列排序 vegetables 檔案,對每一行上第乙個冒號後的文字進行比較。
+1 告訴 sort 命令忽略第一字段,從第二欄位的開始到該行的結束進行比較。-t: 標誌告訴 sort 命令冒號分隔字段。
如果 vegetables 包含:
yams:104
turnips:8
potatoes:15
carrots:104
green beans:32
radishes:5
lettuce:15
那麼,將 lc_all、lc_collate 或 lang 環境變數設定為 c 的情況下,sort 命令將顯示:
carrots:104
yams:104
lettuce:15
potatoes:15
green beans:32
radishes:5
turnips:8
注意數字沒有按照數字排序。當用字典式分類從左至右比較每乙個字元時出現這種情況。
換句話說,3 在 5 之前,所以 32 在 5 之前。
sort -t: +1 -n vegetables
此命令序列按照第二個欄位對 vegetables 檔案進行數字排序。
如果 vegetables 檔案與示例 6 中的相同,那麼 sort 命令將顯示:
radishes:5
turnips:8
lettuce:15
potatoes:15
green beans:32
carrots:104
yams:104
sort -t: +1 -2 -n +0 -1 -r vegetables
或 sort -t: -k2,2 n -k1,1 r vegetables
此命令序列對第二字段(+1 -2 -n)進行數字排序。在這個順序中,它以逆字母順序(+0 -1 -r)對第一字段排序。
將 lc_all、lc_collate 或 lang 環境變數設定為 c 的情況下,輸出將類似於:
radishes:5
turnips:8
potatoes:15
lettuce:15
green beans:32
yams:104
carrots:104
此命令按數字順序對行排序。當兩行數字相同時,它們以逆字母順序出現。
sort -o vegetables vegetables
此命令序列將排序輸出存入 vegetables 檔案( -o vegetables)。
Linux 排序命令sort
很多時候,我們都會去計算一次資料裡頭的相同型態的資料總數,舉例來說,使用 last 可以查得這個月份有登陸主機者的身份。那麼我可以針對每個使用者查出他們的總登陸次數嗎?此時就得要排序與計算之類的命令來輔助了!底下我們介紹幾個好用的排序與統計命令,首先是排序命令sort。root www sort f...
Linux 排序命令sort
很多時候,我們都會去計算一次資料裡頭的相同型態的資料總數,舉例來說,使用 last 可以查得這個月份有登陸主機者的身份。那麼我可以針對每個使用者查出他們的總登陸次數嗎?此時就得要排序與計算之類的命令來輔助了!底下我們介紹幾個好用的排序與統計命令,首先是排序命令sort。root www sort f...
Linux排序命令sort筆記
很多時候linux需要對文字相對比較規範的文字資料進行排序,這時候可以使用linux系統下的sort命令進行處理。語法格式 sort ntkr filename 常用引數 n 根據數字進行排序 t 指定的分隔符 k 指定分隔符的第幾列 r 降序排序 用法示例 a 98 80 100 95 d 88 ...