作为在Windows下运行R的大型任务的一部分,我想在目录之间复制选定的文件。是否可以在R中给出像cp patha/filea*.csv pathb
这样的命令(注意通配符,以获得额外的香料)?
答案 0 :(得分:46)
我认为没有一种直接的方式(害羞的掏空),但以下的东西通常对我有用。
flist <- list.files("patha", "^filea.+[.]csv$", full.names = TRUE)
file.copy(flist, "pathb")
备注:强>
^
和$
(字符串的结尾/结尾) - 这是一个常见问题,因为它们是通配符类型模式所隐含的,但需要使用正则表达式(以免一些文件名与通配符模式匹配,但也可以选择以其他文本开头和/或结尾。ignore.case = TRUE
参数添加到list.files
,以模仿目录搜索对此操作系统不区分大小写的事实。glob2rx()
函数提供了一种将通配符模式转换为正则表达式的便捷方法。例如,fpattern = glob2rx('filea*.csv')
返回一个不同但等效的正则表达式。答案 1 :(得分:12)
你可以
system()
触发命令,就像它在shell上一样,包括globbing list.files()
又名dir()
自行执行globbing / reg.exp匹配并单独复制文件file.copy
,如mjv的回答