我有一个变量和列表,如下所示。
set check a7set element_list "a1 a2 a3 a4 a5 a6 a7 a8 a9 a10"我想要一个列表,其中包含a7之后的所有元素:
a8 a9 a10我该怎么做呢?对"element_list“进行排序。
谢谢。
发布于 2020-05-19 19:21:07
您没有指定如果"check“元素不在列表中应该发生什么。因为您指出列表已排序,所以我假设您仍然需要搜索到的元素之后的元素。
set check a7
set element_list "a1 a2 a3 a4 a5 a6 a7 a8 a9 a10"
set last [lsearch -bisect -dictionary -exact $element_list $check]
puts [lreplace $element_list 0 $last]lsearch的二等分选项将返回元素小于或等于模式的最后一个索引。然后,可以使用lreplace删除该索引之前的所有内容。即使"check“在第一个元素之前,它也能正常工作。
https://stackoverflow.com/questions/61889555
复制相似问题