|
| Omvendte regulære udtryk Fra : Henning Wangerin |
Dato : 03-06-05 16:41 |
|
Ja jeg ved ikke helt om overskriften er rigtig og forståelig
Jeg har et regulært udtryk som sammenfatter en stak domæner. Det udstry
vil jeg meget gerne ha "foldet ud", til de enkelte navne.
Udtrykket har ikke * eller +, så der er en veldifineret og endelig
mængde jeg søger efter.
Et tænkt eksempel til noge andre domæner kunne være
blans(strand|skov)?-?spejd(er|erne).dk
Resultatet vil blive
"(strand|skov)?" -> "", "strand" eller "skov"
"(er|erne)" -> "er" eller "erne"
"-?" -> "" eller "-"
Hvem har en ide til hvordan man gør det ud fra regex-et? En stak nestede
forloops gør det, men jeg ville foretrække den anden løsning for at få
check på om alle kombinatioer er brugt (og der er mange - men manden vil
ha det sådan )
På forhånd tak
/Henning
| |
Sune Vuorela (03-06-2005)
| Kommentar Fra : Sune Vuorela |
Dato : 03-06-05 16:44 |
|
On 2005-06-03, Henning Wangerin <news_via_pan+041124@hpc.dk> wrote:
> Ja jeg ved ikke helt om overskriften er rigtig og forståelig
>
> Jeg har et regulært udtryk som sammenfatter en stak domæner. Det udstry
> vil jeg meget gerne ha "foldet ud", til de enkelte navne.
>
> Udtrykket har ikke * eller +, så der er en veldifineret og endelig
> mængde jeg søger efter.
>
> Et tænkt eksempel til noge andre domæner kunne være
>
> blans(strand|skov)?-?spejd(er|erne).dk
>
> Resultatet vil blive
> "(strand|skov)?" -> "", "strand" eller "skov"
> "(er|erne)" -> "er" eller "erne"
> "-?" -> "" eller "-"
>
> Hvem har en ide til hvordan man gør det ud fra regex-et? En stak nestede
> forloops gør det, men jeg ville foretrække den anden løsning for at få
> check på om alle kombinatioer er brugt (og der er mange - men manden vil
> ha det sådan )
>
> På forhånd tak
>
> /Henning
| |
Sune Vuorela (03-06-2005)
| Kommentar Fra : Sune Vuorela |
Dato : 03-06-05 16:48 |
|
On 2005-06-03, Henning Wangerin <news_via_pan+041124@hpc.dk> wrote:
> Jeg har et regulært udtryk som sammenfatter en stak domæner. Det udstry
> vil jeg meget gerne ha "foldet ud", til de enkelte navne.
Henrik Grove har lavet 'dte' til brug for at putte mange ord i en
ordbog.
http://www.sslug.dk/~grove/dte/
Jeg har hacket den til til brug for domæneopslag og lignende, men det er
blevet noget værre slam, som jeg ikke er sikker på at jeg bryder mig om
at dele ud af, men hvis man spørger pænt kan det godt være.
>
> Udtrykket har ikke * eller +, så der er en veldifineret og endelig
> mængde jeg søger efter.
Det kan man jo heller ikke gøre ordentligt ;)
> blans(strand|skov)?-?spejd(er|erne).dk
$ ./whoistjek "[abc]-?(er|et)" dk
aer.dk er optaget
aet.dk er optaget
a-er.dk er ledigt
a-et.dk er ledigt
ber.dk er optaget
bet.dk er optaget
b-er.dk er ledigt
b-et.dk er ledigt
cer.dk er optaget
cet.dk er optaget
c-er.dk er ledigt
c-et.dk er ledigt
--
Sune
| |
Henning Wangerin (03-06-2005)
| Kommentar Fra : Henning Wangerin |
Dato : 03-06-05 17:24 |
|
On Fri, 03 Jun 2005 15:47:32 +0000, Sune Vuorela wrote:
> Jeg har hacket den til til brug for domæneopslag og lignende, men det er
> blevet noget værre slam, som jeg ikke er sikker på at jeg bryder mig om
> at dele ud af, men hvis man spørger pænt kan det godt være.
Jamen så vil jeg meget gerne sige "be be"
> $ ./whoistjek "[abc]-?(er|et)" dk
> aer.dk er optaget
> aet.dk er optaget
> <osv>
Se det ser lige ud som det output jeg jagter.
Endnu en gang "be be"
| |
Sune Vuorela (03-06-2005)
| Kommentar Fra : Sune Vuorela |
Dato : 03-06-05 22:36 |
|
On 2005-06-03, Henning Wangerin <news_via_pan+041124@hpc.dk> wrote:
> Jamen så vil jeg meget gerne sige "be be"
okay. Hvis din mailadresse virker, så smider jge det den vej.
--
Sune
| |
Henning Wangerin (04-06-2005)
| Kommentar Fra : Henning Wangerin |
Dato : 04-06-05 19:05 |
|
On Fri, 03 Jun 2005 21:36:08 +0000, Sune Vuorela wrote:
> On 2005-06-03, Henning Wangerin <news_via_pan+041124@hpc.dk> wrote:
>> Jamen så vil jeg meget gerne sige "be be"
>
> okay. Hvis din mailadresse virker, så smider jge det den vej.
Det gjorde den.
Tak for det.
Jeg får kigget på det en af dagene.
/henning
| |
Niels Baggesen (06-06-2005)
| Kommentar Fra : Niels Baggesen |
Dato : 06-06-05 18:54 |
|
Henning Wangerin <news_via_pan+041124@hpc.dk> wrote:
> Et tænkt eksempel til noge andre domæner kunne være
> blans(strand|skov)?-?spejd(er|erne).dk
i bash:
$ echo blans{strand,skov,}{-,}spejd{er,erne}.dk | tr ' ' '\n'
blansstrand-spejder.dk
blansstrand-spejderne.dk
blansstrandspejder.dk
blansstrandspejderne.dk
blansskov-spejder.dk
blansskov-spejderne.dk
blansskovspejder.dk
blansskovspejderne.dk
blans-spejder.dk
blans-spejderne.dk
blansspejder.dk
blansspejderne.dk
/Niels
--
Niels Baggesen -- @home -- Århus -- Denmark -- niels@baggesen.net
The purpose of computing is insight, not numbers -- R W Hamming
| |
Henning Wangerin (09-06-2005)
| Kommentar Fra : Henning Wangerin |
Dato : 09-06-05 08:23 |
|
On Mon, 06 Jun 2005 17:53:43 +0000, Niels Baggesen wrote:
> Henning Wangerin <news_via_pan+041124@hpc.dk> wrote:
>> Et tænkt eksempel til noge andre domæner kunne være
>
>> blans(strand|skov)?-?spejd(er|erne).dk
>
> i bash:
>
> $ echo blans{strand,skov,}{-,}spejd{er,erne}.dk | tr ' ' '\n'
> blansstrand-spejder.dk
Hej hov holdt stop!
Det var jo bare endnu simplere.
Den løsning er købt, og er allerede implementeret!
Mange tak for løsningen
/Henning
| |
Henning Wangerin (09-06-2005)
| Kommentar Fra : Henning Wangerin |
Dato : 09-06-05 08:58 |
|
On Thu, 09 Jun 2005 09:22:58 +0200, Henning Wangerin wrote:
> On Mon, 06 Jun 2005 17:53:43 +0000, Niels Baggesen wrote:
>
>> $ echo blans{strand,skov,}{-,}spejd{er,erne}.dk | tr ' ' '\n'
>>
> Den løsning er købt, og er allerede implementeret!
Nå det virker ikke helt alligevel.
Jeg har mine udtryk liggende i en fil i formatet
MASK=foo{bar,bir,bur,}bla.dk
MASK=foo{bor,byr,ber,}bla.dk
Dem hælder jeg igennem et script som gerne skulle bearbejde alle
mulighederne. Det virker bare ikke. Scriptet ser i princippet sådan ud:
for MASK in `grep "MASK=" /path/to/file | sed "s/MASK=//g"` ; do
echo $MASK
for DOMAIN in $MASK ; do
#for DOMAIN in `echo $MASK` ; do
#for DOMAIN in `bash echo $MASK` ; do
echo " "$DOMAIN
done
done
Ingen af de tre for DOMAIN statements virker efter hensigten, da de alle
blot spytter værdien af $MASK ud en enkelt gang i echo $DOMAIN, linien.
Hvad kan der være galt der?
/Henning
| |
Klaus Alexander Seis~ (09-06-2005)
| Kommentar Fra : Klaus Alexander Seis~ |
Dato : 09-06-05 10:26 |
|
Henning Wangerin skrev:
> for MASK in `grep "MASK=" /path/to/file | sed "s/MASK=//g"` ; do
> echo $MASK
> for DOMAIN in $MASK ; do
> #for DOMAIN in `echo $MASK` ; do
> #for DOMAIN in `bash echo $MASK` ; do
> echo " "$DOMAIN
> done
> done
>
> Ingen af de tre for DOMAIN statements virker efter hensigten, da de
> alle blot spytter værdien af $MASK ud en enkelt gang i echo $DOMAIN,
> linien.
Hvammæ
#v+
:
for DOMAIN in $(eval echo $MASK); do
:
#v-
Mvh,
--
Klaus Alexander Seistrup
Copenhagen, Denmark
http://seistrup.dk/
| |
Henning Wangerin (09-06-2005)
| Kommentar Fra : Henning Wangerin |
Dato : 09-06-05 11:46 |
|
On Thu, 09 Jun 2005 09:25:43 +0000, Klaus Alexander Seistrup wrote:
> for DOMAIN in $(eval echo $MASK); do
BINGO
Så spiller det.
Mange tak for hjælpen til jer alle
/Henning
| |
|
|