On Wed, 26 Nov 2003, John W. Eaton wrote: > On 26-Nov-2003, Martin Maechler <[EMAIL PROTECTED]> wrote: > > | >>>>> " Kurt" == Kurt Hornik <[EMAIL PROTECTED]> > | >>>>> on Wed, 26 Nov 2003 10:05:42 +0100 writes: > | > | Kurt> Right. In any case, an explicit glob() function > | Kurt> seems preferable to me ... > | > | Good idea! > | > | More than 12 years ago, I had a similar one, and wrote a > | "pat2grep()" {pattern to grep regular expression} function > | --- for S-plus on Unix --- which I have now renamed to glob2regexp(): > | -- still not really usable outside unix (or windows with the > | 'sed' tool in the path), nor perfect, but maybe a good start: > | > | sys <- function(...) system(paste(..., sep = "")) > | > | glob2regexp <- function(pattern) > | { > | ## Purpose: Change "ls pattern" to "grep regular expression" pattern. > | ## ------------------------------------------------------------------------- > | ## Author: Martin Maechler ETH Zurich, ~ 1991 > | sys("echo '", pattern, "'| sed ", > | "'s/\\./\\\\./g;s/*/.*/g;s/?/./g; s/^/^/;s/$/$/; s/\\.\\*\\$$//'") > | } > > It seems to me that using this approach to implement a proper glob() > function would be more work than using the glob code that is available > as part of bash, which I think will allow you to handle much more > complex patterns, including [xyz] {a,b,c} etc.
Or even the glob code from Perl, which is cross-platform. It is not clear to me what we would want glob() to do on Windows, BTW. -- Brian D. Ripley, [EMAIL PROTECTED] 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 ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-devel