Hi, I have 50 files whose names are XYZW01Genesis_ABC.mp3 XYZW02Genesis_ABC.mp3 ....... XYZW50Genesis_ABC.mp3 As you can tell, the only difference across the files are 01, 02, 03,....50. I would like to rename them to 01Gen01.mp3 01Gen02.mp3 ....... 01Gen50.mp3 If I store them in one folder and write an R code in that folder, how can it be done? Thanks, John [[alternative HTML version deleted]]
Ulrik Stervbo
2017-Sep-28 09:42 UTC
[R] rename multiple files by file.rename or other functions
Hi John, I don't know how to do this with R, but on Linux I'd use rename (or maybe even by hand if it's a one time event). On Windows I believe there is a tool called Bulk Rename. HTH Ulrik On Thu, 28 Sep 2017 at 11:37 John <miaojpm at gmail.com> wrote:> Hi, > > I have 50 files whose names are > > XYZW01Genesis_ABC.mp3 > XYZW02Genesis_ABC.mp3 > ....... > XYZW50Genesis_ABC.mp3 > > As you can tell, the only difference across the files are 01, 02, > 03,....50. > > I would like to rename them to > 01Gen01.mp3 > 01Gen02.mp3 > ....... > 01Gen50.mp3 > > If I store them in one folder and write an R code in that folder, how can > it be done? > > Thanks, > > John > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >[[alternative HTML version deleted]]
Thierry Onkelinx
2017-Sep-28 10:09 UTC
[R] rename multiple files by file.rename or other functions
The combination of list.files(), gsub() and file.rename() should to the trick. ir. Thierry Onkelinx Statisticus/ Statistician Vlaamse Overheid / Government of Flanders INSTITUUT VOOR NATUUR- EN BOSONDERZOEK / RESEARCH INSTITUTE FOR NATURE AND FOREST Team Biometrie & Kwaliteitszorg / Team Biometrics & Quality Assurance thierry.onkelinx at inbo.be Kliniekstraat 25, B-1070 Brussel www.inbo.be /////////////////////////////////////////////////////////////////////////////////////////// To call in the statistician after the experiment is done may be no more than asking him to perform a post-mortem examination: he may be able to say what the experiment died of. ~ Sir Ronald Aylmer Fisher The plural of anecdote is not data. ~ Roger Brinner The combination of some data and an aching desire for an answer does not ensure that a reasonable answer can be extracted from a given body of data. ~ John Tukey /////////////////////////////////////////////////////////////////////////////////////////// [image: Van 14 tot en met 19 december 2017 verhuizen we uit onze vestiging in Brussel naar het Herman Teirlinckgebouw op de site Thurn & Taxis. Vanaf dan ben je welkom op het nieuwe adres: Havenlaan 88 bus 73, 1000 Brussel.] <https://overheid.vlaanderen.be/mobiliteitsplan-herman-teirlinckgebouw> Van 14 tot en met 19 december 2017 verhuizen we uit onze vestiging in Brussel naar het Herman Teirlinckgebouw op de site Thurn & Taxis. Vanaf dan ben je welkom op het nieuwe adres: Havenlaan 88 bus 73, 1000 Brussel. /////////////////////////////////////////////////////////////////////////////////////////// <https://www.inbo.be> 2017-09-28 11:37 GMT+02:00 John <miaojpm at gmail.com>:> Hi, > > I have 50 files whose names are > > XYZW01Genesis_ABC.mp3 > XYZW02Genesis_ABC.mp3 > ....... > XYZW50Genesis_ABC.mp3 > > As you can tell, the only difference across the files are 01, 02, > 03,....50. > > I would like to rename them to > 01Gen01.mp3 > 01Gen02.mp3 > ....... > 01Gen50.mp3 > > If I store them in one folder and write an R code in that folder, how can > it be done? > > Thanks, > > John > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/ > posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >[[alternative HTML version deleted]]
Jim Lemon
2017-Sep-28 10:25 UTC
[R] rename multiple files by file.rename or other functions
Hi John, Maybe this: filenames<-c("XYZW01Genesis_ABC.mp3","XYZW02Genesis_ABC.mp3") for(filename in filenames) { filefirst<-sapply(strsplit(filename,"[.]"),"[",1) fileno<-sub("_","",gsub("[[:alpha:]]","",filefirst)) file.rename(filename,paste("01Gen",fileno,".mp3",sep="")) } Jim On Thu, Sep 28, 2017 at 7:37 PM, John <miaojpm at gmail.com> wrote:> Hi, > > I have 50 files whose names are > > XYZW01Genesis_ABC.mp3 > XYZW02Genesis_ABC.mp3 > ....... > XYZW50Genesis_ABC.mp3 > > As you can tell, the only difference across the files are 01, 02, > 03,....50. > > I would like to rename them to > 01Gen01.mp3 > 01Gen02.mp3 > ....... > 01Gen50.mp3 > > If I store them in one folder and write an R code in that folder, how can > it be done? > > Thanks, > > John > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.
Eric Berger
2017-Sep-28 10:57 UTC
[R] rename multiple files by file.rename or other functions
Hi John, Thanks to Jim for pointing out the file.rename() function. You can try this: # define the filename templates strIn <- "XYZW--Genesis_ABC.mp3" strOut <- "01Gen--.mp3" # create the strings "01", "02", ..., "50" v <- sapply(1:50, function(i) sprintf("%02d",i) ) # perform all the file renames for ( s in v ) { file.rename(sub("--",s,strIn), sub("--",s,strOut) ) } HTH, Eric On Thu, Sep 28, 2017 at 1:25 PM, Jim Lemon <drjimlemon at gmail.com> wrote:> Hi John, > Maybe this: > > filenames<-c("XYZW01Genesis_ABC.mp3","XYZW02Genesis_ABC.mp3") > for(filename in filenames) { > filefirst<-sapply(strsplit(filename,"[.]"),"[",1) > fileno<-sub("_","",gsub("[[:alpha:]]","",filefirst)) > file.rename(filename,paste("01Gen",fileno,".mp3",sep="")) > } > > Jim > > On Thu, Sep 28, 2017 at 7:37 PM, John <miaojpm at gmail.com> wrote: > > Hi, > > > > I have 50 files whose names are > > > > XYZW01Genesis_ABC.mp3 > > XYZW02Genesis_ABC.mp3 > > ....... > > XYZW50Genesis_ABC.mp3 > > > > As you can tell, the only difference across the files are 01, 02, > > 03,....50. > > > > I would like to rename them to > > 01Gen01.mp3 > > 01Gen02.mp3 > > ....... > > 01Gen50.mp3 > > > > If I store them in one folder and write an R code in that folder, how > can > > it be done? > > > > Thanks, > > > > John > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide http://www.R-project.org/ > posting-guide.html > > and provide commented, minimal, self-contained, reproducible code. > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/ > posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >[[alternative HTML version deleted]]
Jim Lemon
2017-Sep-28 22:22 UTC
[R] rename multiple files by file.rename or other functions
Hi John, After a bit of thinking: # fill in the appropriate path and pattern filenames<-list.files(path=???,pattern=???) for(filename in filenames) { filefirst<-sapply(strsplit(filename,"[.]"),"[",1) # delete all non-digits fileno<-gsub("[^[:digit:]]","",filefirst) file.rename(filename,paste("01Gen",fileno,".mp3",sep="")) } Jim