Вывести список файлов с указанным именем c и скопировать в каталог - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть несколько файлов XML в каталоге «D:/», и я хочу перенести часть этих файлов в другой каталог, например, 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

Итак, как бы я go перенес 2 файла, зная, что у меня есть только часть их имени?

Результат хочу в каталоге D:/FILES_XML:

2019010210_20009741.xml
2019010210_20009742.xml

1 Ответ

1 голос
/ 04 февраля 2020

Просто настройте соответствие регулярного выражения:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...