删除 R 中的多个排序文件

remove multiple sequenced files in R

我创建了多个名为 1:100 的文件 + 文件的随机字母:

for (i in 1:100){
  file.create( paste0(i , ".txt"), showWarnings=TRUE)

  # assign random LETTER to files
  AZ <- sample(LETTERS,1)
  cat(AZ,file = paste0(i,".txt"),append=TRUE)

  #rename files, and create new file with append of LETTERS
  name <- scan(file=paste0(i,".txt"), what="character")
  file.rename(paste0(i,".txt"), paste0(i, name,".txt"))

现在,我有很多文件名为“1T、2C、3Y、...、100A”,我想用 [= 删除所有这些文件(不删除目录中的其余文件) 22=]函数,不一一命名应该如何删除?以及所有名为 "exercicio03" 的目录,其中包含所有内容?

ps.: 我已经试过了

     file.remove(paste0(i,name,".txt"))

但仅删除最后一个文件“100A”

由于您使用了一个示例函数,我认为如果您(确实)保存了从该示例函数中获得的值,您只能 100% 确定您只删除了这些文件而没有其他文件。 所以你的第一部分应该是:

 AZ<-NA
 for (i in 1:100){
 file.create( paste0(i , ".txt"), showWarnings=TRUE)

# assign random LETTER to files

 AZ[i] <- sample(LETTERS,1)
 cat(AZ[i],file = paste0(i,".txt"),append=TRUE)

#rename files, and create new file with append of LETTERS
 name <- scan(file=paste0(i,".txt"), what="character")
file.rename(paste0(i,".txt"), paste0(i, name,".txt"))
}

这样您之后就可以通过以下方式将它们全部删除:

 for (i in 1:100){
  file.remove(paste0(i,AZ[i],".txt"))
 }

您可以使用以下两行代码轻松地仅删除名称类似于 "1T.txt, 2C.txt, 3Y.txt, ..., 100A.txt" 的文件:

remove.files <- list.files(".", pattern="^[0-9]{1,3}[A-Z]{1}\.txt$")
do.call(file.remove,list(remove.files))

该脚本获取您创建它们的当前目录中所有以 1-3 位数字后跟一个字母开头的文本文件,并删除它们。