作为在 Windows 下运行的 R 中执行的较大任务的一部分,我想在目录之间复制选定的文件。是否可以在 R 中给出像
cp patha/filea*.csv pathb
这样的命令(注意通配符,以获得额外的趣味)?
我认为没有直接的方法(避免被淘汰),但像下面这样的方法通常对我有用。
flist <- list.files("patha", "^filea.+[.]csv$", full.names = TRUE)
file.copy(flist, "pathb")
备注:
^
和 $
(字符串的开头/结尾)——这是一个常见的问题,因为这些是通配符类型模式的隐式,但需要正则表达式(以免某些文件名与通配符模式,但也可以选择以附加文本开始和/或结束)。ignore.case = TRUE
参数添加到 list.files
,以模拟目录搜索在该操作系统中不区分大小写的事实。glob2rx()
函数提供了一种将通配符模式转换为正则表达式的便捷方法。例如 fpattern = glob2rx('filea*.csv')
返回不同但等效的正则表达式。你可以
system()
来触发命令,就像在 shell 上一样,包括通配符list.files()
又名 dir()
进行 globbing / reg.exp 匹配自己并单独复制文件file.copy
,如 mjv 的答案所示对于其他脚本小子:
mainDir<-getwd() #so it creates the file wherever your working directory is
subDir<-"name_of_my_new_sub-directory"
dir.create(file.path(mainDir, subDir), showWarnings = FALSE)
setwd(file.path(mainDir, subDir))