TCL自定义排序

时间:2011-05-09 15:13:14

标签: sorting tcl

我很感激任何帮助,因为我是TCL的新手。我通过在CLI命令的输出上执行'regexp -all -line -inline'+标准来创建字符串列表。此列表的每个元素现在都以数字结尾,我想对每个字符串中此特定数字结尾的列表进行排序,但保留字符串的其余部分。一个接近的例子是必须按照文件的大小对“ls -la”命令的输出进行排序。我尝试了以下但是没有用:

lsort -command  "regexp -lineanchor {\d+$}" -integer $list

花了一天时间试图解决这个问题后,我决定问你们。你能帮忙吗?

1 个答案:

答案 0 :(得分:5)

说实话,我不明白你想用-command "regexp -lineanchor {\d+$}"做些什么。如果您打算比较数字,命令regexp -lineanchor {\d+$}实际上应该总是返回1。

如果要按其子列表的最后一个元素对列表进行排序,可以使用-index选项。 E.g:

lsort -index end -integer {{x y 5} {a b 8} {c c 3} {u u 1} {x y 2}}

返回:

{u u 1} {x y 2} {c c 3} {x y 5} {a b 8}

如果您的数据没有列在子列表中,但逐行显示数据,则必须先split,例如:

lsort -index end -integer [split $data "\n"]