重命名文件夹中的多个文件

时间:2019-03-01 16:03:42

标签: r rename

  list.files()

  "file_iteration1_2019-03-01-03-38-16.csv"
  "file_iteration1_obs_2019-03-01-03-38-16.csv" 
  "file_iteration1_modp_2019-03-01-03-38-16.csv"

我想重命名这些没有年份和时间戳的文件,这样看起来

"file_iteration1.csv"
"file_iteration1_obs.csv" 
"file_iteration1_modp.csv"

3 个答案:

答案 0 :(得分:3)

由于要重命名文件夹中的文件,因此可以将file.rename()gsub()(由{avid_useR和@akrun建议,sub()stringr::str_remove()组合在一起)工作正常)。试试:

file.rename(list.files(), gsub('_[0-9-]+', '', list.files()))

答案 1 :(得分:2)

使用sub

x <- c("file_iteration1_2019-03-01-03-38-16.csv", 
"file_iteration1_obs_2019-03-01-03-38-16.csv",
"file_iteration1_modp_2019-03-01-03-38-16.csv")

sub('_\\d{4}(-\\d{2}){5}', '', x)
# [1] "file_iteration1.csv"      "file_iteration1_obs.csv"  "file_iteration1_modp.csv"

答案 2 :(得分:2)

我们可以使用str_remove

library(stringr)
str_remove(files, "_[0-9-]+")
#[1] "file_iteration1.csv"      "file_iteration1_obs.csv"  "file_iteration1_modp.csv"