Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting TCL自定义排序_Sorting_Tcl - Fatal编程技术网

Sorting TCL自定义排序

Sorting TCL自定义排序,sorting,tcl,Sorting,Tcl,我非常感谢您在这方面的帮助,因为我是TCL的新手。我通过对CLI命令的输出执行'regexp-all-line-inline'+标准创建了一个字符串列表。这个列表中的每个元素现在都以一个数字结尾,我想在每个字符串中按照这个特定的数字结尾对列表进行排序,但保留字符串的其余部分。一个比较接近的例子是必须按照文件的大小对'ls-la'命令的输出进行排序。我尝试了以下方法,但无效: lsort -command "regexp -lineanchor {\d+$}" -integer $list 在

我非常感谢您在这方面的帮助,因为我是TCL的新手。我通过对CLI命令的输出执行'regexp-all-line-inline'+标准创建了一个字符串列表。这个列表中的每个元素现在都以一个数字结尾,我想在每个字符串中按照这个特定的数字结尾对列表进行排序,但保留字符串的其余部分。一个比较接近的例子是必须按照文件的大小对'
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完全相同的方式理解单词。