Skip to content
Back to formatted view

Raw Message

Message-ID: <Pine.LNX.4.44.0411041503510.31970-100000@gannet.stats>
Date: 2004-11-04T15:10:37Z
From: Brian Ripley
Subject: list files ignoring the case option
In-Reply-To: <1099575962.3232.20.camel@ramasamy.stats>

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