[R] list files ignoring the case option

Adaikalavan Ramasamy ramasamy at cancer.org.uk
Thu Nov 4 19:22:43 CET 2004


Thanks to Sundar Dorai-Raj, Prof. Ripley and Berton Gunter for the
solution. I think I will take Prof. Ripley's suggestion and stick with
my initial solution for code readability but I am sure the regexp stuff
will come handy next time.

On Thu, 2004-11-04 at 15:10, Prof Brian Ripley wrote:
> On Thu, 4 Nov 2004, Adaikalavan Ramasamy wrote:
> 
> > Sorry if this is a question more on regular expressions. I am dealing
> > with several files which have been badly named. For example the files
> > are given either the extensions txt, TXT or Txt. I wish to select all
> > those files ending with 'txt' ignoring case.
> > 
> > Here is how I would do it in bash (Redhat FC2) :
> > 
> >    touch  a1.txt  a2.TXT  a3.Txt  txt.control  TXT.control
> >    ls -1 | grep -i "txt$"
> > 
> > 
> > Here is how I am currently doing it in R
> > 
> >    a <- list.files(all.files=T)
> >    grep( "txt$", a, ignore.case=T, value=T )
> 
> I'd write that in one line, but it seems as good a way as any.
> 
> > Is it possible for me to modify the following line to include ignore
> > case option ?
> > 
> >    a <- list.files( pattern="txt$" )
> 
> Not as such.
> 
> First, I think you want "\\.txt$" there if you do mean file extensions.
> 
> You can use a regexp that ignores case, though, e.g. "\\.[Tt]{Xx][Tt]".
> 
> But I would just use your original idea, which is essentially what ls() is 
> doing internally and is self-documenting.




More information about the R-help mailing list