1

我有一个包含数千个子目录的目录。

每个子目录都以 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)`
4

2 回答 2

3

您可以使用Filter过滤您的目录列表

testSite <- "australia.gov.au"
Filter(function(x) grepl(paste0("^", gsub(".", "\\.", testSite, fixed=TRUE)), x),
    list.dirs())

我们会做一些额外的工作来将您的 URL 转换为正则表达式来进行匹配。

于 2015-11-02T23:14:30.893 回答
1

遵循@MrFlick 对第一部分的回答,但稍微简化了其余部分:

 re <- paste0("^", gsub(".", "\\.", testSite, fixed=TRUE))
 grep(re,list.dirs(),value=TRUE)
于 2015-11-02T23:17:35.103 回答