Sorting TCL自定义排序
我非常感谢您在这方面的帮助,因为我是TCL的新手。我通过对CLI命令的输出执行'regexp-all-line-inline'+标准创建了一个字符串列表。这个列表中的每个元素现在都以一个数字结尾,我想在每个字符串中按照这个特定的数字结尾对列表进行排序,但保留字符串的其余部分。一个比较接近的例子是必须按照文件的大小对'Sorting TCL自定义排序,sorting,tcl,Sorting,Tcl,我非常感谢您在这方面的帮助,因为我是TCL的新手。我通过对CLI命令的输出执行'regexp-all-line-inline'+标准创建了一个字符串列表。这个列表中的每个元素现在都以一个数字结尾,我想在每个字符串中按照这个特定的数字结尾对列表进行排序,但保留字符串的其余部分。一个比较接近的例子是必须按照文件的大小对'ls-la'命令的输出进行排序。我尝试了以下方法,但无效: lsort -command "regexp -lineanchor {\d+$}" -integer $list 在
ls-la
'命令的输出进行排序。我尝试了以下方法,但无效:
lsort -command "regexp -lineanchor {\d+$}" -integer $list
在花了一天的时间试图弄明白这一点后,我决定问你们。你能帮忙吗?老实说,我不明白你想用
-command“regexp-lineanchor{\d+$}”实现什么。如果要比较数字,命令regexp-lineanchor{\d+$}
实际上应该始终返回1
如果要按列表子列表的最后一个元素对列表进行排序,可以使用-index
选项。例如:
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}
如果您的数据不在子列表中,但具有逐行的数据,则必须先将其拆分,例如:
lsort -index end -integer [split $data "\n"]
bmk,你是最棒的!!!这正是我想要实现的。多谢各位@托塔:我很高兴能帮到你。+1但是我会在排序之前做一个单独的步骤从每行中提取单词,因为不能保证其他命令会以与Tcl完全相同的方式理解单词。