Mailing List Archive

Converting shell globs to regular expressions
Greetings,

does anybody know about some command to convert shell globs (shell pat-
terns) into regular expressions? Back in the old Unix days there was a
"glob" command, but "e-files" only turns up a GNU library.

I am aware of Python's "fnmatch.translate()" function, but this -- of
course -- returns a Python style regular expression which I can't use
together with "grep" or "gawk". So using this function would require
moving and converting the "grep" and "gawk" specific code from my Shell
script into a separate Python script. This would be doable, if neces-
sary, but I would prefer staying with just my Shell script.

Any pointers heartily welcome :-)

Sincerely,
Rainer
Re: Converting shell globs to regular expressions [ In reply to ]
>Greetings,
>
>does anybody know about some command to convert shell globs (shell pat-
>terns) into regular expressions? Back in the old Unix days there was a
>"glob" command, but "e-files" only turns up a GNU library.

Would one of the functions in
dev-perl/Text-Glob
do what you need?

DaveF

>
>I am aware of Python's "fnmatch.translate()" function, but this -- of
>course -- returns a Python style regular expression which I can't use
>together with "grep" or "gawk". So using this function would require
>moving and converting the "grep" and "gawk" specific code from my Shell
>script into a separate Python script. This would be doable, if neces-
>sary, but I would prefer staying with just my Shell script.
>
>Any pointers heartily welcome :-)
>
>Sincerely,
> Rainer
>
Re: Converting shell globs to regular expressions [ In reply to ]
On Thu, 2023-04-13 at 18:27 +0200, Dr Rainer Woitok wrote:
> Greetings,
>
> does anybody know about some command to convert shell globs (shell pat-
> terns) into regular expressions?
>

What exactly are you trying to do? This sounds like an XY problem
(https://xyproblem.info/).
Re: Converting shell globs to regular expressions [ In reply to ]
On 2023-04-13, Dr Rainer Woitok wrote:

> Greetings,
>
> does anybody know about some command to convert shell globs (shell pat-
> terns) into regular expressions? Back in the old Unix days there was a
> "glob" command, but "e-files" only turns up a GNU library.
>
> I am aware of Python's "fnmatch.translate()" function, but this -- of
> course -- returns a Python style regular expression which I can't use
> together with "grep" or "gawk". So using this function would require
> moving and converting the "grep" and "gawk" specific code from my Shell
> script into a separate Python script. This would be doable, if neces-
> sary, but I would prefer staying with just my Shell script.
>
> Any pointers heartily welcome :-)

What did the "glob" utility you remember do? Sources at TUHS have a
"glob" utility, but it seems to execute a given command after expanding
the glob, instead of outputting a translation (which I think is what
you're describing?).

Do you remember which system did you see this on? Perhaps this could be
a question for alt.folklore.computers or a comp.unix.* group on USENET
too!

The "glob" utility at TUHS:
https://minnie.tuhs.org/cgi-bin/utree.pl?file=V5/usr/source/s1/glob.c

and the source for its online manual page from V6:
https://www.tuhs.org/cgi-bin/utree.pl?file=V6%2Fusr%2Fman%2Fman8%2Fglob.8

--
Nuno Silva