2017-09-16 181 views
0

我有多个要重命名以组织它们的mp3文件。他们大多数都有类似的格式:数字0,后面跟着一个数字(1:9),一个空格,然后是mp3文件名。他们是这个样子:R - 重命名目录中的文件

head(files) 
[1] "01 50 Cent - Candy Shop.mp3"     
[2] "01 50 Cent - Fresh '83.mp3"     
[3] "01 Akon ft Eminem - Smack That.mp3"   
[4] "01 Akon ft Snoop Dog - I Wanna Love You.mp3" 
[5] "01 Aldo Ranks - Baila.mp3"     
[6] "01 Aldo Ranks - El Alicate.mp3" 

head(files[1098:1102]) 
[1] "1-01 Spragga Benz - She Nuh Ready Yet.mp3"   
[2] "1-01 Tal Bachman - Darker Side Of Blue.mp3"   
[3] "1-01 When Love Takes Over (feat. Kelly Rowland).mp3" 
[4] "1-02 Big Boy - Voz Sensual.m4a"      
[5] "1-02 Come Out And See.mp3" 

为了简单起见,我的工作目录是包含这些文件的文件夹。 什么将是一个有效的方式来重命名这个文件?可能使用正则表达式,如substrgrep或其他?我应该写一个函数吗?

我试图将文件名存储在名为files的变量中,但效率并不高,因为元素的更改未反映在我的工作目录中。

任何建议>

+1

什么是新名字? (顺便说一句,'substr'不使用正则表达式。) –

+0

例如,如果当前名称是“01 50 Cent - Fresh '83 .mp3”,我想将其更改为“50 Cent - Fresh '83 .mp3 ”。 – Agarp

+1

参见'sub'命令,例如。 'sub(“[0-9 - ] + \\ s- *”,“”,“01 50 Cent - Candy Shop.mp3”)' – jenesaisquoi

回答

1

我不是一个正则表达式的专家,远离它,但是这一个是简单的。

files <- 
c("01 50 Cent - Candy Shop.mp3", "01 50 Cent - Fresh 83.mp3", 
"01 Akon ft Eminem - Smack That.mp3", "01 Akon ft Snoop Dog - I Wanna Love You.mp3", 
"01 Aldo Ranks - Baila.mp3", "01 Aldo Ranks - El Alicate.mp3" 
) 

new_names <- sub("^0[[:digit:]] ", "", files) 
new_names 

然后,实际上使用file.rename重命名它们。

file.rename(from = files, to = new_names)