我有一个包含大约 140 个 .tif 文件的文件夹。我需要删除每个文件名末尾的“[]”。
例如,我有一个名为“GOGA_na_MP_FortBakerTopography_196[].tif”的文件,需要将其重命名为“GOGA_na_MP_FortBakerTopography_196.tif”。
我尝试了以下操作,使用 for 循环迭代所有文件,并使用 gsub 删除括号以代替任何内容。
raster_files <- list.files(pattern =".tif$", full.names = TRUE)
for (files in raster_files){
raster_name <- basename(files)
file_name <- gsub("[", "", gsub("]", "", raster_name, fixed = TRUE), fixed = TRUE)
}
我已经阅读了与此类似的所有其他堆栈问题(包括删除括号)并尝试实施他们的解决方案,但没有成功。非常感谢任何帮助,谢谢。
尝试使用
stringi
代替 if ,但对于 gsub 来说这应该可行。而且你也不需要循环,很确定 ?gsub
是矢量化的:
> example <- "file[name].tiff"
> gsub("\\[|\\]", '', example, perl = TRUE)
您可以在
regex
这里了解更多关于这个和其他可怕现实的信息