Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Jun 2019 10:44:56 -0500
From:      Paul Schmehl <pschmehl_lists@tx.rr.com>
To:        Polytropon <freebsd@edvax.de>, FreeBSD Questions <freebsd-questions@freebsd.org>
Subject:   Re: How to un-select files in shell wildcard patterns
Message-ID:  <94FB6F4A679CD506CC02DCF2@Pauls-MacBook-Pro.local>
In-Reply-To: <20190621054909.c6ba47ab.freebsd@edvax.de>
References:  <20190621054909.c6ba47ab.freebsd@edvax.de>

next in thread | previous in thread | raw e-mail | index | archive | help
--On June 21, 2019 at 5:49:09 AM +0200 Polytropon <freebsd@edvax.de> wrote:

> I'm interested in a convenient method to "un-select" files
> when using regular (sh) shell wildcards. It's quite easy to
> describe things like
>
> 	*.tex
>
> to perform an operation on all LaTeX source files, or
>
> 	*a*
>
> on all files whose name contains (at least) one "a". Patterns
> that are based on the inclusion of certain attributes are not
> a problem to deal with using the builtin pattern matching of
> the shell.
>
> But what about the opposite? Let's say, perform an operation
> on all files _except_ the LaTeX source files, or all files
> whose name does _not_ contain an "a"?
>
> Is there a good method to do this, except creating a kind
> of "custom regex wrapper script" that does the selection part,
> for further use with `subshell` or | xargs?

I feel almost silly trying to suggest anything to *you*, but egrep 
'(foo|bar|zed|fam). does the trick. So, for example, if you want to do 
something in the shell to act on all files except ones that end in .tex or 
have an a in their name:
ls -al| egrep '(a|\.tex)' * | awk (whatever), etc.

Paul Schmehl, Retired
My opinions are my own.
*******************************************
"It is as useless to argue with those who have
renounced the use of reason as to administer
medication to the dead." Thomas Jefferson
"There are some ideas so wrong that only a very
intelligent person could believe in them." George Orwell




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?94FB6F4A679CD506CC02DCF2>