r - 列出具有特定名称的文件并复制到目录
问题描述
我在“<code>D:/”目录中有几个 XML 文件,我想将这些文件的一部分转移到另一个目录,例如,D:/FILES_XML
该D:/
目录包含以下文件:
2019010112_20009726.xml
2019010113_20009725.xml
2019010208_20009734.xml
2019010210_20009741.xml
2019010210_20009742.xml
我列出的目录如下:
setwd ("D: /")
files <- list.files (pattern = ".xml")
在这 5 个文件中,我只想传输到D:/FILES_XML
目录中的 2 个文件。但是,由于过程内部故障,这些文件的名称是不同的,因为我只能看到部分名称(我只看到下划线“_”后面的内容)。因此,我想要的 2 个文件为我描述如下:
20009741
20009742
那么,知道我只有他们名字的一部分,我将如何传输这两个文件?
我想要的结果在目录中D:/FILES_XML
:
2019010210_20009741.xml
2019010210_20009742.xml
解决方案
只需调整正则表达式模式匹配:
files <- list.files(pattern = "(_20009741|_20009742).xml")
或者,对于许多文件,使用paste
折叠成单个正则表达式字符串:
f <- c(20009741, 20009742)
m <- paste0("(", paste(f, collapse="|"), ").xml")
files <- list.files(pattern = m)
然后用于file.copy
复制文件:
file.copy(paste0(getwd(), "/", files), paste0(getwd(), "/FILES_XML/", files),
overwrite = TRUE)
推荐阅读
- linux - 为什么我不能在没有额外写权限的情况下`mv`一个目录
- json - 删除多个符合条件的对象
- flutter - 行中的顶部对齐图标
- docker - 将文件从主机复制到 Docker 容器的工作目录
- javascript - 加载后如何在网站背景中绘制网格线?
- javascript - 事件处理问题
- android - Android 应用程序中的 ClassWithInstantRunDebug 错误
- javascript - Stripe - 令牌与源,更改默认源
- python - 在 Rasbian 上使用烧瓶发送电子邮件(温度传感 API)
- ruby-on-rails - 是否可以将 Rails authenticate_with_http_token 与 Roda 应用程序一起使用?