From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joshua Rosen To: cygwin@sourceware.cygnus.com Subject: Re: How do I list subdirectories? Date: Tue, 31 Aug 1999 23:49:00 -0000 Message-ID: <37C41932.5EC121E0@geekspace.com> References: X-SW-Source: 1999-08n/msg00675.html Message-ID: <19990831234900.-mumDKU28bA9qCgqHnTelGc7iDtPE3gMh4TKtzlb2S4@z> Clark Sims wrote: > > Nice try but > ls -F | egrep .*\/ > doesn't work. > I agree that it ought to. I don't understand why it > doesn't. Because the asterisk is neither quoted nor escaped, so it's being expanded by the shell before it's fed to grep. Use any of: '.*/' ".*/" .\*/ Note that the forward slash doesn't need to be escaped--it's not a special regexp character. > However Kim Poulsen found a command that does work: > ls -F | egrep \/ And this works (with less typing;)), because (e|f|)grep finds an equivilant substring -anywhere- in the string that you grep from. You only need the ".*" if you use it like "^.*" ;) > > It seems that this is a question on pattern matching. > It seems to me that a directory which is mached by: > \/ > should also be matched by > *\/ ... if we're using shell patterns (which the grep command isn't). In the regexps that grep is using, it'd be appropriate for you to be told that your regexp is invalid, because there aren't any characters before the Kleen star. Remember, too, that the "*/" isn't being fed to grep, too--all of the file-names, ending in '/', joined together by spaces, are, and that's not going to match. look at the string output by: echo */ I am wondering why using a backslash anyware in a shell expression escapes all of the asterisks, right now..., but that appears to be something about bash, not Cygwin. Oh--a fairly good description of standard regexps (and all sorts of other things) can be found in the Free Online Dictionary of Computing: http://foldoc.doc.ic.ac.uk/ -Rozzin. -- -----BEGIN GEEK CODE BLOCK----- Version: 3.12 GFA/CS/L/M/P/MU/O d(-) s:-- a? C++++$>$ UL P L+ E W+++ N-(!) o? K(--) w(--)(---) O+++ M-- V? PS+++ PE Y+ PGP-(+++) t 5 X+ R* tv(+) b+ DI+ D---- G+++ e- h! r%--- y+ ------END GEEK CODE BLOCK------ rozzin@geekspace.com -- http://i.am/rozzin -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe@sourceware.cygnus.com