linux查找命令仅匹配精确匹配?
不久前,我创建了一个TCL脚本,以使用非常特定的命名约定将自动生成的文件压缩到归档文件中。然而,我最近发现了一个bug,如果一个文件的名称包含另一个归档文件的完整字符串,它会将其标记为副本 我正在使用:linux查找命令仅匹配精确匹配?,linux,find,tcl,Linux,Find,Tcl,不久前,我创建了一个TCL脚本,以使用非常特定的命名约定将自动生成的文件压缩到归档文件中。然而,我最近发现了一个bug,如果一个文件的名称包含另一个归档文件的完整字符串,它会将其标记为副本 我正在使用: set stat [ exec find -name $combo | sort -r ] set foo true foreach m $stat { if { $foo } { set foo false } else { set bar
set stat [ exec find -name $combo | sort -r ]
set foo true
foreach m $stat {
if { $foo } {
set foo false
} else {
set bar [ string trimleft $m ./]
set tmp "OLD_"
set tmp $tmp$bar
exec mv $bar $tmp
}
}
然而,我看到的问题是,如果我有两个档案:
12345_abcd_download
12345_abcd_download_again
find函数将同时返回这两个值。有没有一种方法可以让它只在字典对应的情况下返回它们?它一定与您的$combo有关-可能它包含一个
*
。在命令行上尝试查找-名称“12345下载”-打印。这将找不到您的12345\u xiao\u再次下载文件。我现在不觉得自己很傻。既然您的问题解决了,我建议您忘记变量foo并执行以下操作:foreach m[lrange$stat 1 end]{
--这应该会从列表中删除第一项。很抱歉,我花了这么长时间才回复,但是谢谢你给我关于lrange的提示!我不知道这是可能的!