使用groovy,我想找到一个以XXXX字符开头的目录。我是个新手,不胜感激。
给出目录Y,仅在Y内搜索,我需要找到以XXXX开头的目录。它只能是一个与模式匹配的目录。
这是在詹金斯中使用的。
我尝试了以下方法:
def release_dir_path = "C:\\Dir\\ReleaseDir"
def pattern = "DWH-4072"
def release_path = ""
new File(release_dir_path).eachDir { File dir -> if
(dir.name.startsWith(pattern) { release_path = dir })}
println release_path
想法是在Y中找到以XXXX开头的目录,并将该值放入release_path。
答案 0 :(得分:0)
您尚未指定:
我假设您要在/tmp
中进行非递归搜索。
// stores each matching directory as a File object
List<File> matchingDirs = []
new File('/tmp').eachDir { File dir ->
if (dir.name.startsWith('XXXX')) {
matchingDirs << dir
}
}
// after updating your question to explain that there should be just
// one matching dir and you want to capture it in a variable and print it
if (matchingDirs) {
def matchingDir = matchingDirs[0]
println matchingDir
}
如果要递归搜索,只需将eachDir
替换为eachDirRecurse
。