delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2004/09/02/12:20:25

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Date: Thu, 2 Sep 2004 12:20:13 -0400 (EDT)
From: Igor Pechtchanski <pechtcha AT cs DOT nyu DOT edu>
Reply-To: cygwin AT cygwin DOT com
To: cygwin AT cygwin DOT com
Subject: Re: Regular Expressions from Bash Shell
In-Reply-To: <20040901225456.GJ9891@trixie.casa.cgf.cx>
Message-ID: <Pine.GSO.4.61.0409021215010.11629@slinky.cs.nyu.edu>
References: <F76C9B2DA2FC4C4CA0A18E288BBCBCF708217CF7 AT nihexchange24 DOT nih DOT gov> <20040901225456 DOT GJ9891 AT trixie DOT casa DOT cgf DOT cx>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 2.39

Well, since CGF himself didn't deem this too off-topic... :-)

On Wed, 1 Sep 2004, Christopher Faylor wrote:

> On Wed, Sep 01, 2004 at 06:07:15PM -0400, Buchbinder, Barry (NIH/NIAID) wrote:
> >At Wednesday, September 01, 2004 5:17 PM, Igor Pechtchanski wrote:
> >> On Wed, 1 Sep 2004, Siegfried Heintze wrote:
> >>
> >>> I want to use grep on all the FORTRAN source code files in the
> >>> current directory whose file names do not contain a "_" character.
> >>> How do I do this?
> >>>
> >>> I'm using the extension of ".f" to designate FORTRAN.
> >>
> >> Disclaimer: this is not a shell programming support forum, and the
> >> above post is off-topic for this list, since it asks a general shell
> >> question not related to Cygwin.
> >>
> >> But, since I'm sending this e-mail anyway (and I hope this in no way
> >> encourages similar future posts):
> >>
> >> find . -name \*_\* -o -name \*.f -print | xargs grep EXPRESSION
> >
> >I think a "!" was forgotten.

Nope.  Try the above -- only the names *without* underscores will be
*printed*, since \*_\* will match them first, and wisk them away from the
second match expression.

> >find . \( ! -name \*_\* \) -o -name \*.f -print | xargs grep EXPRESSION
> >
> >The parentheses may not be needed -- you can try it both ways.

The above has a bug -- it should have a "-a" instead of a "-o".  Once
that's fixed, that would be YA way of doing it.  The parentheses aren't
neded.  BTW, this suffers from the same problem as my original suggestion
above, though -- see below.

> I don't think either of those meets the letter of the original request.

True.

> If you only want the files in the current directory then something like:
>
> ls -d *.f | grep -v '^_' | xargs grep EXPRESSION
>
> should work better.
>
> Or if you use zsh you can just do:
>
> grep EXPRESSION *.f~_*
>
> cgf

Or you could add "-mindepth 1 -maxdepth 1" to the "find" command above,
which would make it do exactly what the user wanted.
	Igor
P.S. Should I add TMTOWTDI to the OLOCA? ;-)
-- 
				http://cs.nyu.edu/~pechtcha/
      |\      _,,,---,,_		pechtcha AT cs DOT nyu DOT edu
ZZZzz /,`.-'`'    -.  ;-;;,_		igor AT watson DOT ibm DOT com
     |,4-  ) )-,_. ,\ (  `'-'		Igor Pechtchanski, Ph.D.
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

"Happiness lies in being privileged to work hard for long hours in doing
whatever you think is worth doing."  -- Dr. Jubal Harshaw

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019