【发布时间】:2023-03-05 18:25:01
【问题描述】:
我正在尝试在子目录中搜索目录并返回任何与通配符 glob 搜索匹配的目录。
文件夹结构如下...
Rootdir
-dir01
-dir_match_01-OLD
-dir_match_01
-dir02
-dir_match_02-OLD
-dir_match_02
-dir03
-dir_match_03-OLD
-dir_match_03
-...
我正在搜索将驻留在 dir01、dir02、dir03 等中的目录。
我正在使用以下 glob 调用递归搜索目录,这似乎工作正常...
set rootdir "/home/rootdir/"
set searchstring "*-OLD"
foreach dir [glob -nocomplain -dir $rootdir -type d -- *] {
set result [glob -nocomplain -dir $dir -type d -- $searchstring]
puts $result
}
我发现如果我不在$searchstring 中使用通配符并使用存在的确切目录名称,我会成功接收输出。但是,如果我然后使用通配符搜索所有以*-OLD 结尾的目录,它会成功找到它们,将它们全部放在同一行。
/home/rootdir/dir01/directory01-OLD /home/rootdir/dir01/directory02-OLD /home/rootdir/dir01/directory03-OLD
我试图通过使用 regsub 将空格替换为 \n 来分隔条目,但它所做的只是删除空格...
/home/rootdir/dir01/directory01-OLD/home/rootdir/dir01/directory02-OLD/home/rootdir/dir01/directory03-OLD
对我做错的任何建议将不胜感激,谢谢。
【问题讨论】: