← Back to team overview

sslug-teknik team mailing list archive

Re: sed og wildcards

 

On Thu, Nov 15, 2001 at 19:14:08 +0100, Kim Hermansen wrote:

> Jeg sidder lige og roder med sed, og kan ikke få den til at bruge
> wildcard som ? eller *
> Jeg ville gerne kunne bruge: sed s/(19??)/aarstal/ 
> for at få skiftet (19??) til aarstal
> Så det er de widlcards i (19??) der er problemet. 
> Jeg ved ikke om det er parantesen der giver problemet, men den er
> der ligesom, og skal også med væk.
> 
> (19??) står for (19"og et eller andet")

Husk "shell" expanderer wildcards som *, ? mv.

Derudover bruger regular expressions "." til at matche et vilkårligt tegn.
Er det kun cifre så [0-9].

Så  :

 echo "hej (1992) ?" |  sed "s/(19..)/aarstal/"

eller

 echo "hej (1992) ?" |  sed "s/(19[0-9][0-9])/aarstal/"


*,? og 0 har speciel betydning idet * er 0 eler flere gange,
"+" er en eller flere gange, og ? er 0 eller en gang.
Disse tegn sættes efter det der skal matches.
F.eks.:

 echo "hej (1992) ?" |  sed "s/(1[0-9]+)/aarstal/"

Se "man 7 regex" og "man sed"

-- 
mvh Frank Damgaard  | http://home3.inet.tele.dk/frda/



Follow ups

References