首页 > 解决方案 > 如何删除R中文件名括号内的字符?

问题描述

我有一堆文件,需要删除文件名括号内的字符。我使用以下代码:

x <- list.files()

file.rename(str_detect(x,"\\s*\\([^\\)]+\\)"), "")

然后结果出现以下错误:invalid 'from' argument。

输入(文件名样本):

abc(2020)_test1.xlsx, abc(2020)_test2.xlsx, abc(2020)_test3.xlsx

预期输出:

abc_test1.xlsx, abc_test2.xlsx, abc_test3.xlsx

标签: r

解决方案


假设所有这些文件都存在于您的工作目录中,您可以尝试:

new_x <- sub('\\(.*\\)', '', x)
file.rename(x, new_x)

例如,如果x是这样的:

x <- c('abc(2020)_test1.xlsx', 'abc(2020)_test2.xlsx', 'abc(2020)_test3.xlsx')

new_x将会 :

new_x <- sub('\\(.*\\)', '', x)
new_x
[1] "abc_test1.xlsx" "abc_test2.xlsx" "abc_test3.xlsx"

推荐阅读