使用 gsub 删除文件名末尾的括号

问题描述 投票:0回答:1

我有一个包含大约 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)
}

我已经阅读了与此类似的所有其他堆栈问题(包括删除括号)并尝试实施他们的解决方案,但没有成功。非常感谢任何帮助,谢谢。

r for-loop rename gsub file-rename
1个回答
0
投票

尝试使用

stringi
代替 if ,但对于 gsub 来说这应该可行。而且你也不需要循环,很确定
?gsub
是矢量化的:

> example <- "file[name].tiff"
> gsub("\\[|\\]", '', example, perl = TRUE)

您可以在

regex
这里

了解更多关于这个和其他可怕现实的信息
© www.soinside.com 2019 - 2024. All rights reserved.