[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Wie sämtliche Pakete erneut installieren?



Hallo!

On 01 Feb 2004 at 15:01 +0100, Thorsten Haude wrote:

> * Elmar W. Tischhauser wrote (2004-02-01 14:43):
> >On 01 Feb 2004 at 01:48 +0100, Thorsten Haude wrote:
> >> * Andreas Metzler wrote (2004-02-01 00:32):
> >> >Thorsten Haude <debian@thorstenhau.de> wrote:
> >> >> * Elmar W. Tischhauser wrote (2004-01-31 12:56):
> >> >
> >> >>>'.[^.]*' ist präziser und damit weniger gefährlich.
> >> >
> >> >> Ich weiß nicht. Ich bin überrascht, das die Shell überhaupt Regexe
> >> >> kann, wenn man die mit Fileglobs mischt, kann es sicher schnell
> >> >> sportlich werden.
> >> >
> >> >Das ist keine regex sondern Globbing, eben "Punkt, ein nicht-Punkt,
> >> >beliebig viele (0 oder mehr) beliebige Zeichen" und nicht "beliebiges
> >> >Zeichen, nicht-Punkt beliebig oft (0 oder mehr)".
> >
> >> Nee, das ist schon eine Zeichenklasse wie man sie aus Regexen kennt,
> >> also wird gemischt, also schlecht.
> >
> >Wie Andreas dir schon erklärt hat, wird da nichts "gemischt", sondern
> >lediglich das ganz normale Globbing verwendet. Siehe dazu zum Beispiel
> >auch 'man bash', Stichwort "Pattern Matching".

> Siehe dazu auch Posix, wo das für Fileglobbing ausdrücklich
> ausgenommen ist. Diese Art der Zeichenklassen ist regexisch.

Wenn du damit meinst, dass glob(7) nur [!abc], aber nicht [^abc]
spezifiziert, hast du Recht. 

Allerdings reden wir hier (der OP wollte ja Dateien löschen) von
konkretem Pattern Matching in konkreten Shells; die bash akzeptiert
explizit beide Formen:

,-----[ man bash, EXPANSION, Pattern Matching ]
| If  the  first character following the [ is a !  or a ^ then any
| character not enclosed is matched.
`----------------------------------------------

Wenn ich mich richtig erinnere, fordert die (t)csh sogar die Verwendung
von ^, für eine reine Bourne-Shell dürfte wiederum ! das Richtige sein.

Welche Muster der OP also einsetzen kann, hängt von der von ihm
verwendeten Shell ab. Und bei einer bash kann man [^.] durchaus
verwenden, ohne sich undefiniertes Verhalten einzufangen.

> Ich benutze solche Muster für rm nicht, ohne sie vorher mit einem ls
> zu testen.

Oder mit echo, genau. Ich bin da auch gerne vorsichtig. Vor allem, wenn
man das Muster in ein Skript übernimmt und sich dann später blind darauf
verlässt :-)

Gruß,
Elmar

-- 
[ GnuPG: D8A88C0D / 2407 063C 1C92 90E9 4766 B170 5E95 0D7F D8A8 8C0D ]
·······································································
  Sicher ist, dass nichts sicher ist. Selbst das nicht. -- Ringelnatz

Attachment: pgp5xgIO1zYhP.pgp
Description: PGP signature


Reply to: