排序

讀取輸入、排序數據,並將結果寫入畫面、檔案或其他裝置。

Syntax

sort [/r] [/+<N>] [/m <kilobytes>] [/l <locale>] [/rec <characters>] [[<drive1>:][<path1>]<filename1>] [/t [<drive2>:][<path2>]] [/o [<drive3>:][<path3>]<filename3>]

Parameters

Parameter Description
/r 反轉排序順序(也就是說,從 Z 到 A 排序,以及從 9 到 0 排序)。
/+<N> 指定 排序 將開始每次比較的字元位置編號。 N 可以是任何有效的整數。
/米 <kilobytes> 指定要用於以 KB 為單位排序的主要記憶體數量。
/l <地區設定> 覆寫系統預設地區設定所定義的字元排序順序(也就是安裝期間選取的語言和國家/地區)。
/娛樂 <characters> 指定記錄或輸入檔行中的字元數上限(預設值為 4,096,最大值為 65,535)。
[<drive1>:][<path1>]<filename1> 指定要排序的檔案。 如果未指定檔名,則會排序標準輸入。 指定輸入檔的速度比重新導向與標準輸入相同的檔案更快。
/噸 [<drive2>:][<path2>] 指定目錄的路徑,以保存 排序 命令的工作儲存體,如果資料不適合主記憶體。 根據預設,系統會使用系統暫存目錄。
/o [<drive3>:][<path3>]<filename3> 指定要儲存排序輸入的檔案。 如果未指定,數據會寫入標準輸出。 指定輸出檔案的速度比將標準輸出重新導向至相同的檔案更快。
/unique 只傳回唯一的結果。
/? 在命令提示字元中顯示說明。

Remarks

  • 根據預設,比較會從每一行的第一個字元開始。 指令行選項會在 /+N 指定的字元開始比較。例如, /+3 表示每個比較都應該從每一行的第三個字元開始。 少於 N 個字元的行會在其他行之前進行分頁。

  • 使用的記憶體一律至少為 160 KB。 如果指定記憶體大小,則不論可用的主要記憶體數量為何,都會針對排序使用確切的指定數量(必須至少為 160 KB)。

  • 如果未指定任何大小,則預設的最大記憶體大小是可用主要記憶體的 90%,如果輸入和輸出都是檔案,則為 45%,否則為主要記憶體。 默認設定通常會提供最佳效能。

  • 目前,預設地區設定的唯一替代方案是 C 地區設定,其速度比自然語言排序更快(它會根據其二進位編碼來排序字元)。

  • 您可以使用管符號 (|) 將輸入資料從另一個指令導向至 排序 指令,或將排序輸出導向至另一個指令。 您可以使用重新導向符號來指定輸入和輸出檔案(<>)。 直接指定輸入檔案 (如命令語法中的 filename1 ) ,然後使用 /o 參數指定輸出檔案,可能會更快且更有效率 (尤其是大型檔案) 。

  • sort 命令不區分大寫和小寫字母,並且對文件大小沒有限制。

  • 排序程式會使用對應至 國家/地區 代碼和字碼頁設定的分照順序資料表。 大於 ASCII 碼 127 的字元會根據 Country.sys 檔案中的資訊,或 Config.nt 檔案中 country 指令所指定的替代檔案中的資訊來排序。

  • 如果排序符合記憶體大小上限 (預設設定或 /m 參數所指定) ,則會在單一階段中執行排序。 否則,排序會以兩個不同的排序和合併傳遞來執行,而兩個傳遞所使用的記憶體數量相等。 執行兩次傳遞時,部分排序的數據會儲存在磁碟上的暫存盤中。 如果記憶體不足,無法以兩個階段執行排序,則會發出運行時錯誤。 如果使用 /m 命令列選項來指定比實際可用的記憶體更多的記憶體,則可能會發生效能降低或執行階段錯誤。

Examples

  • 若要以相反的順序排序並顯示名為 expenses.txt的檔案中的行,請鍵入:

    sort /r expenses.txt
    
  • 若要在名為 maillist.txt 的大型檔案中搜尋文字 Jones,並使用管道 (|) 來排序搜尋結果,以將 尋找 指令的輸出導向至 排序 指令,請鍵入:

    find Jones maillist.txt | sort
    

    此命令會產生包含指定文字的已排序行清單。

  • 若要排序鍵盤輸入並依字母順序在螢幕上顯示結果,您可以先使用沒有參數的 排序 命令,方法是輸入:

    sort
    

    然後輸入您想要排序的文字,然後按每一行結尾的 ENTER。 當您完成輸入文字時,請按 CTRL+Z,然後按 ENTER 鍵。 排序指令會顯示您輸入的文字,並依字母順序排序。