列出以某种模式开头的目录
List directories that begin with a pattern
我有一个包含数千个子目录的目录。
每个子目录都以 URL 名称开头,例如:/australia.gov.au_about-australia
我想获取以某个字符串开头的所有子目录的列表,例如"australia.gov.au".
似乎 list.dirs
函数不允许进行模式匹配?
我尝试了以下方法,但无济于事:
testSite <- "australia.gov.au"
list.files(paste0("main-directory/",paste0("^[",testSite,"]")),
full.names = TRUE, recursive=TRUE, ignore.case = TRUE)`
您可以使用 Filter
来过滤您的目录列表
testSite <- "australia.gov.au"
Filter(function(x) grepl(paste0("^", gsub(".", "\.", testSite, fixed=TRUE)), x),
list.dirs())
我们做了一些额外的工作,将您的 URL 转换为正则表达式以进行匹配。
按照@MrFlick 对第一部分的回答,但略微简化其余部分:
re <- paste0("^", gsub(".", "\.", testSite, fixed=TRUE))
grep(re,list.dirs(),value=TRUE)
我有一个包含数千个子目录的目录。
每个子目录都以 URL 名称开头,例如:/australia.gov.au_about-australia
我想获取以某个字符串开头的所有子目录的列表,例如"australia.gov.au".
似乎 list.dirs
函数不允许进行模式匹配?
我尝试了以下方法,但无济于事:
testSite <- "australia.gov.au"
list.files(paste0("main-directory/",paste0("^[",testSite,"]")),
full.names = TRUE, recursive=TRUE, ignore.case = TRUE)`
您可以使用 Filter
来过滤您的目录列表
testSite <- "australia.gov.au"
Filter(function(x) grepl(paste0("^", gsub(".", "\.", testSite, fixed=TRUE)), x),
list.dirs())
我们做了一些额外的工作,将您的 URL 转换为正则表达式以进行匹配。
按照@MrFlick 对第一部分的回答,但略微简化其余部分:
re <- paste0("^", gsub(".", "\.", testSite, fixed=TRUE))
grep(re,list.dirs(),value=TRUE)