2017-09-16 15 views
0

名前を変更して整理したい複数のmp3ファイルがあります。それらの大部分は、数字が0、数字が1:9、スペースが1つ、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" 

、私の作業ディレクトリは、これらのファイルを含むフォルダである:彼らはこのような何かを見て。 このファイルの名前を変更する効率的な方法は何ですか?おそらくsubstr,grepなどの正規表現を使用していますか?私は関数を書くべきですか?

ファイル名をfilesという変数に格納しようとしましたが、要素の変更が自分の作業ディレクトリに反映されないため、効率的ではありません。

任意の提案>

+1

新しい名前は何ですか? (BTW、 'substr'は正規表現を使用しません) –

+0

たとえば、現在の名前が" 01 50 Cent - Fresh '83 .mp3 "の場合、" 50 Cent - Fresh '83 .mp3に変更したいと思います" – Agarp

+1

'sub'コマンドを参照してください。 'sub"([0-9 - ] + \\ s- * "、" "01" 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) 
関連する問題