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