此命令可讓您設定排序選項,並執行作用中檔案或所有開啟檔案的排序。 排序後,將依照以下方式對每組列進行比較: 依照指定的順序(根據關聯的排序選項),排序操作將比較每組欄位,直至找出不同之處,或完成沒有任何欄位。 如果未指定鍵欄位,排序操作將使用整行的預設鍵。 最後當所有鍵相等時,如有絕對必要,排序操作將比較整行,如同未指定反向順序之外的其他排序選項。
排序處理序不限制輸入行長度,也不限制行內允許的字元。 此外,如果輸入檔的最後一個字元不是新行字元,排序將預設提供一個新行字元。 行的行尾新行字元不用於行的比較。
選取「進階排序選項」命令後,將出現一個包含以下選項的對話方塊:
排序
使用此下拉清單,使用者可設定針對當前文件或所有已打開的文件的排序。
輸出至新建檔
如果選取該選項,排序結果將寫入一個新建檔,原始檔案不受排序的影響。
合併排序結果
僅當在排序下拉清單中選取了所有已打開的文件時,該選項才可用。 選取該選項後,將對所有已打開的文件進行排序,併合並到一個單獨的結果檔中。
順序
使用該下拉清單,使用者可以指定用於活動檔的排序方法。 以下選項會影響到輸出行的順序。 可將這些選項指定為在全域範圍內使用,或作為一個特定的鍵欄位的一部分。 如果未指定鍵欄位,全域選項適用於整行的比較;否則全域選項將由未指定其自身特殊選項的鍵欄位來繼承。 有以下選項可用:
字典 |
按電話目錄的順序進行排序: 排序時,忽略字母、數位和空白之外的所有字元。 預設情況下,字母和數位都是 ASCII 格式,空白是空格或標籤,但是使用地區設定下拉清單選取的選項可對此作出更改。 |
數值 |
按數值進行排序。 每行以數字為開頭,數字包括可選空白、可選 '-' 符號、零或多個位數(可能使用千位元分隔符號隔開),後面可跟一個小數點字元和零或多個位數。 空白數字則被視為 '0'。 地區設定下拉清單指定小數點字元和千位元分隔符號。 預設情況下,空白是指空格或標籤,但可透過地區設定下拉清單進行更改。 |
| 月份 | 由任意數量的空白組成且位於月份縮寫前的初始字串將被更改為大寫格式,並依照 'JAN' < 'FEB' < ... < 'DEC' 的順序進行比較。 無效的名稱在順序上比有效的名稱靠後。 地區設定下拉清單決定月份拼寫。 預設情況下,空白是指空格或標籤,但可透過地區設定下拉清單進行更改。 |
版本 |
按版本名稱和版本號進行排序。 像標準排序一樣排序,除了將各個一連串的十進制數字視為索引號/版本號。 請參閱下方的「版本」排序。 |
| 隨機 | 先依據雜湊對輸入鍵進行排序,然後對雜湊值進行排序。 隨機選擇一個雜湊函數,確保不會發生衝突,以使不同的鍵有不同的雜湊值。 這好比輸入值的隨機排列,除了將有相同值的鍵一起排序。 如果指定了多個隨機排序欄位,同一隨機雜湊函數將用於所有欄位。 要將不同的隨機雜湊函數用於不同欄位,可以多次叫用排序。 |
| 預設 | 按字典順序進行排序。 像字典一樣,依照字母順序對排序行(或指定鍵)中的每個字元進行排序。 |
有關「版本」排序方法的詳情
版本排序用於處理那些通常含有索引或版本號的檔案名稱。 由於是按逐個字元進行比較的,因而標准排序通常不會生成使用者所需的順序。 如果目錄中多個檔的名稱中含有索引/版本號,當需瀏覽目錄時,版本排序對此尤為有用:
$ ls -1 $ ls -1v
abc.zml-1.gz abc.zml-1.gz
abc.zml-12.gz abc.zml-2.gz
abc.zml-2.gz abc.zml-12.gz
按版本排序的字串根據以下原則進行比較:如果 ver1 和 ver2 都是版本編號,且字首和尾碼(符合規則運算式 '(.[A-Za-z~][A-Za-z0-9~]*)*' 的尾碼)都是字串,那麼 ver1 < ver2 表示由「字首 ver1 尾碼」組成的名稱排在由「字首 ver2 尾碼」組成的名稱的前面。
另需注意,數位部分的前置字元為零將被忽略。
$ ls -1 $ ls -1v
abc-1.007.tgz abc-1.01a.tgz
abc-1.012b.tgz abc-1.007.tgz
abc-1.01a.tgz abc-1.012b.tgz
某些尾碼與上述規則運算式不相符。 所以,這些範例可能無法按預期進行排序:
abc-1.2.3.4.7z
abc-1.2.3.7z
abc-1.2.3.4.x86_64.rpm
abc-1.2.3.x86_64.rpm
選項
| 移除重複項 | 如果選取該選項,將從結果中移除被偵測為重複項的行。 |
| 反向順序 | 對比較結果進行反向排序,因而在輸出中鍵值越大的列排行越靠前,而不是靠後。 |
| 忽略前置空格 | 在各列中尋找排序鍵時,忽略前置空格。 預設情況下,空白是指空格或標籤,但可透過地區設定下拉清單進行更改。 注意: 可依照地區設定的定序規則忽略空白,但是如果不使用該選項,這些空白將大大影響鍵中指定的字元位置。 |
| 地區設定 | 使用者可以使用該下拉清單來指定用於排序操作的地區設定。 該設定將影響到詞典、月份、數字和版本排序的結果。 |
| 忽略大小寫 | 比較時,將小寫字元更改為等同的大寫字元,以使如 'b' 和 'B' 的順序等同。 地區設定下拉清單決定字元類型。 |
| 穩定排序 | 透過停用其絕對必要的比較來保持排序穩定,以使所有欄位相等的行保持最初的相對順序。 如果未指定除反向順序以外的任何欄位或全域排序選項,則該選項不產生影響。 |
| 分隔字元 | 預設情況下,排序操作可偵測到從非空白字元至空白(預設為空格或標籤)的過渡。 這用於確定排序欄位的開頭和結尾。 必要時,使用者可將一個特定字元指定為欄位分隔字元。 |
將「整行」用作「鍵」
如果選取該選項,當對檔案進行排序時,將評估整行。 該選項不用於單個欄位/字元。
鍵
如果願意,使用者可指定用於確定排序方法和排列順序的鍵。 除非另行指定,排序鍵將繼承忽略大小寫和忽略空白的全域排序選項。
可透過指定以下各項來定義排序鍵: 開始欄位、開始字元、結束欄位、結束字元。 欄位位置和字元位置都是從 1 開始編號;結束字元的字元位置為 0,是指該欄位的最後一個字元。 如果指定了欄位值,但未指定開始字元值和結束字元值,排序鍵將被預設為指定欄位的開頭和結尾部分。 鍵可以涵蓋多個欄位。
忽略大小寫、忽略空白選項和所選排序方法都是針對相關鍵的。 如果未指定這些選項,但指定了鍵欄位和字元,將使用全域指定的選項對指定鍵進行排序。
按下排序按鈕以使用指定的參數開始排序處理序。 根據待排序檔的大小,可能出現一個提示,表明檔已被鎖定以便排序。 在對檔進行排序時,檔將被鎖定,不得修改。
Article Number: 5216
Posted: Tue, Apr 24, 2012 4:14 PM
Last Updated: Tue, Apr 24, 2012 4:17 PM
Online URL: http://www.ultraedit.com/help/article/進階排序-選項-mac-linux-5216.html