2017-09-16 139 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)