閱讀英文

共用方式為


排序

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

語法

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

參數

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

備註

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

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

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

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

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

  • 排序 命令不會區分大寫和小寫字母,而且檔案大小沒有限制。

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

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

範例

  • 若要依反向順序排序和顯示名為 expenses.txt的檔案中的行,請輸入:

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

    find Jones maillist.txt | sort
    

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

  • 若要依字母順序排序鍵盤輸入並在畫面上顯示結果,您可以輸入下列命令,先使用 排序 命令,不含參數:

    sort
    

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