Provided by: manpages-zh_1.5.1-1_all bug

NAME

       lsort - 給一茼C表的元素排序

` SYNOPSIS
       lsort ?options? list
_________________________________________________________________

yz DESCRIPTION
       這茤R令給  list  的元素排序,返回按整理後的次序(排列)的一虓s列表。lsort
       命令的實現使用了歸並排序算法,這蚨滫k有 O(n  log    n)  性能特征的一蚚-
       定的排序算法。

       預設的使用  ASCII    排序,並按升序返回結果。但是,可以在 list    的前-
       惚定任何下列參數來控制排序處理(接受唯一性的縮寫):

       -ascii              字符串比較使用                                ASCII
                           (作為)整理(collation)次序。這是預設的。

       -dictionary         使用字典式樣的比較。除了下列兩點之外它同於
                           -ascii。(a)          除了作為一        tie-breaker
                           之外忽略大寫,(b)
                           如果字符串包含嵌入的數字,數字作為整數來比較而不是字符。例如,在
                           -dictionary     模式下,bigBoy    排序在 bigbangbigboy 之間,而 x10y    排序在 x9yx11y 之間。

       -integer            把列表元素轉換成整數並使用整數比較。

       -real               把列表元素轉換成浮點癡洏巹B點比較。

       -command command    使用  command     作為一茪騆命令。想比較兩茪葛嚏A-
                           n求由  command    構成的一  Tcl 稿本的A並加上兩-
                           茪葛嬪@為(向這蚢L程)附加的參數。如果第一-
                           荌捊Q認定為小於、等於、或大於第二荌捊A這-
                           蚑Z本應該分別返回小於、等於、或大於零的一蚞蒱C

       -increasing         按升序整理這茼C表(「最小」
                           的項目在最先)。這是預設的。

       -decreasing         按飢蓂z這茼C表(「最大」 的項目在最先)。

       -index index        如果指定了這蚇龠窗Alist       的每茪葛嬰菬必須是一-
                           茈蕭T的 Tcl  子列表。不是基於整茪l列表來排序,lsort
                           將從每茪l列表中提取第      index     茪葛嬤簸簼馧o-
                           茧鼎w的元素來排序。index      允釣洏恞鶬鉿r     end
                           來在子列表的最後的元素上排序, 而 end-index sorts on |
                           a sublist element offset from the end 。例如,
                                  lsort -integer -index 1 {{First 24} {Second 18} {Third 30}}
                           返回 {Second 18} {First 24} {Third 30}, 並且        |
                                  lsort -index end-1 {{a 1 e i} {b 2 3 f g} {c 4 5 6 d h}}|
                           返回 {c 4 5 6 d h} {a 1 e i} {b  2  3  f  g}.   這-
                           蚇龠竣顐洏 -command    來完成同樣的弁跣更加高效。

       -unique             如果指定了這蚇龠窗A則保留在這茼C表中找到的-
                           契_的(duplicate)元素的最後一組。注意-
                           契_是相對於在排序中使用的比較來決定的。所以如果使用了
                           -index  0{1   a}{1   b}     將被認為是-
                           契_的並只保留第二茪葛 {1 b}。

`N NOTES
       The  options to lsort only control what sort of comparison is used, and
       do not necessarily constrain what the values themselves  actually  are.
       This  distinction  is  only  noticeable  when the list to be sorted has
       fewer than two elements.

       The lsort command is reentrant, meaning it is safe to use  as  part  of
       the implementation of a command used in the -command option.

d EXAMPLES
       Sorting a list using ASCII sorting:
              % lsort {a10 B2 b1 a1 a2}
              B2 a1 a10 a2 b1

       Sorting a list using Dictionary sorting:
              % lsort -dictionary {a10 B2 b1 a1 a2}
              a1 a2 a10 b1 B2

       Sorting lists of integers:
              % lsort -integer {5 3 1 2 11 4}
              1 2 3 4 5 11
              % lsort -integer {1 2 0x5 7 0 4 -1}
              -1 0 1 2 4 0x5 7

       Sorting lists of floating-point numbers:
              % lsort -real {5 3 1 2 11 4}
              1 2 3 4 5 11
              % lsort -real {.5 0.07e1 0.4 6e-1}
              0.4 .5 6e-1 0.07e1

       Sorting using indices:
              % # Note the space character before the c
              % lsort {{a 5} { c 3} {b 4} {e 1} {d 2}}
              { c 3} {a 5} {b 4} {d 2} {e 1}
              % lsort -index 0 {{a 5} { c 3} {b 4} {e 1} {d 2}}
              {a 5} {b 4} { c 3} {d 2} {e 1}
              % lsort -index 1 {{a 5} { c 3} {b 4} {e 1} {d 2}}
              {e 1} {d 2} { c 3} {b 4} {a 5}

       Stripping duplicate values using sorting:
              % lsort -unique {a b c a b c a b c}
              a b c

       More complex sorting using a comparison function:
              % proc compare {a b} {
                  set a0 [lindex $a 0]
                  set b0 [lindex $b 0]
                  if {$a0 < $b0} {
                      return -1
                  } elseif {$a0 > $b0} {
                      return 1
                  }
                  return [string compare [lindex $a 1] [lindex $b 1]]
              }
              % lsort -command compare \
                      {{3 apple} {0x2 carrot} {1 dingo} {2 banana}}
              {1 dingo} {2 banana} {0x2 carrot} {3 apple}

 SEE ALSO
       lappend(n),  lindex(n),  linsert(n),  list(n),  llength(n),  lrange(n),
       lreplace(n), lsearch(n)

r KEYWORDS
       element, list, order, sort

[]
      Hhh

[]
       2001/09/06

m Linux manUpn:
       http://cmpp.linuxforum.net