[R] list files ignoring the case option

Prof Brian Ripley ripley at stats.ox.ac.uk
Thu Nov 4 16:10:37 CET 2004


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.

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595




More information about the R-help mailing list