sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #44439
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