tcl:lsort -dictionary用空格替换新行

时间:2016-01-29 10:56:40

标签: linux sorting tcl

我使用以下命令对字符串的内容进行排序

set local_object [lsort -dictionary $list_object] 

此命令将用空格替换新行

如何避免?

2 个答案:

答案 0 :(得分:2)

lsort假设它的参数是一个Tcl列表。包括换行符在内的任何空格都可以分隔该列表的元素,但不会在输出中保留。如果要格式化输出列表,每行可以使用一个元素:

set local_object [join [lsort -dictionary $list_object] "\n"]

答案 1 :(得分:1)

这完全取决于您的列表的构建方式。任何字符串都可以解释为列表。如果您将字符串视为列表,则所有空格都被视为分隔符。

set str "d b a\n c"
set lst [lsort -dictionary [split $str " "]]
foreach word $lst {
    puts $word
}

a

b
c
d

Split保留了换行符并使用单个空格作为分隔符。