Date: Fri, 7 Oct 2005 17:52:43 +0200 From: Dennis Decker Jensen <none@dennisdjensen--tiscali.dk.lh.bsd-dk.dk> To: bsd-dk@bsd-dk.dk Subject: Re: Lidt korn shell scripting [array]
On Fri, Oct 07, 2005 at 12:27:17AM +0200, per engelbrecht wrote:
> Lasse H.Petersen wrote:
> >Det du *vil* er så vidt jeg kan se at producere en find som på en gang
> >traverserer dit træ og finder alle filer der ender på et af de angivne
> >TLDer,
> >så du ikke skal traversere hele træet en gang for hver TLD.
>
> Korrekt.
Find(1) kan bruges med -regex, så noget i stil med dette kunne også være en
løsning:
find $TLDDIR -type f -regex ".*\.\(dk\|se\|uk\|de\)$"
Hvorvidt du så kan ekspandere et array som en række disjunkte
alternativer i et regulært udtryk, kan jeg ikke umiddelbart svare på,
men måske sed kan hjælpe der, hvis du vil lege videre.
set -A TLDS dk se uk de ru no
find $TLDDIR -type f -regex "$(echo ".*\.\(${TLDS[*]}\)" | sed "s/ /\\\|/g")"
Måske skal de indre citationstegn escapes, men jeg tvivler.
> >I stedet har find mulighed for at bruge komplekse udtryk som argument,
> >udtryk
> >som den selv fortolker. se find(1) i TFM.
;-)
/Dennis
"Some of us figured out in the 1950s that blacklists
were a bad idea. Some of us have that lesson still
ahead of us."
-- John Gilham, talking about spam and freedom
This archive was generated by hypermail 2b30 : Wed 15 Nov 2006 - 18:24:53 CET