Springe zum Hauptinhalt

Archiv
next up previous contents
Next: Shell-Scripts Up: Bourne-Shell als Kommando- und Previous: Pipelineverarbeitung

Filenamengenerierung

  • Verwendung von Metazeichen zur Bezeichnung einer Gruppe von
    Filenamen bei der Angabe von Filenamen-Argumenten

    (Begriffe: Filenamengenerierung, pattern matching, wild-cards (Joker))

  • Metazeichen und ihre Bedeutung
    * repräsentiert jede Zeichenkette einschließlich der leeren Zeichenkette
      (Zeichenkette mit der Länge 0)
    ? repräsentiert ein beliebiges Zeichen
    [ Beginn einer Zeichenklassenangabe
    ] Abschluß einer Zeichenklassenangabe
    - Zeigt eine lexikographisch geordnete Zeichenklasse an
  • Beispiele:


    im aktuellen Verzeichnis befinden sich die Files

    kap01.tex
    kap01.dvi
    kap02.tex
    kap02.dvi
    kap03.tex
    kap03.dvi
    kap04.tex
    kap04.dvi
    kap05.tex
    kap05.dvi
    prog.c
    prog.o
    prog1.c
    sort
    
    $ ls *                 -> alle Files
    
    $ ls kap*              -> kap01.tex, kap01.dvi, kap02.tex, kap02.dvi,
                              kap03.tex, kap03.dvi, kap04.tex, kap04.dvi,
                              kap05.tex, kap05.dvi
    
    $ ls *.c               -> prog.c, prog1.c
    
    $ ls kap*.tex          -> kap01.tex, kap02.tex, kap03.tex, kap04.tex, kap05.tex
    
    $ ls kap04.tex*        -> kap04.tex
    
    $ ls kap04.tex?        -> nichts
    
    $ ls ?????????         -> kap01.tex, kap01.dvi, kap02.tex, kap02.dvi,
                              kap03.tex, kap03.dvi, kap04.tex, kap04.dvi,
                              kap05.tex, kap05.dvi
    
    $ ls kap0[123]*        -> kap01.tex, kap01.dvi, kap02.tex, kap02.dvi,
                              kap03.tex, kap03.dvi
    
    $ ls kap0[1-3]*        -> kap01.tex, kap01.dvi, kap02.tex, kap02.dvi,
                              kap03.tex, kap03.dvi
    
    $ ls kap0[1-9].dvi     -> kap01.dvi, kap02.dvi, kap03.dvi, kap04.dvi, kap05.dvi
    
    $ ls kap0[1-12].tex    -> kap01.tex, kap02.tex
    
    $ ls *.[a-d]*          -> kap01.dvi, kap02.dvi, kap03.dvi, kap04.dvi,
                              kap05.dvi, prog.c, prog1.c
    
  • Bemerkungen:
    • trifft natürlich für alle Kommandos zu
    • Beispiel: cc *.c
    • Problem: Anzahl der Kapitel übersteigt 9, z.B. 12
      kap0[6-9].tex kap1[0-2].tex  $\Rightarrow$ kap06.tex bis kap12.tex
    • Problem: Metazeichen sind selbst im Filenamen enthalten $\Rightarrow$ ,,Flüchten`` der Sonderbedeutung mittels $\backslash$
    • Beispiel: Filter, die auf * enden, können durch das Muster *$\backslash$* ,,adressiert`` werden
    • Testen der Effekte der Filenamengenerierung durch das Kommando echo:
    • Beispiel:
      $ echo rm kap0[1-3].dvi
         rm kap01.dvi kap02.dvi kap03.dvi
      

  • Ki generiertes Bild

    Offen für Argumente geht in die zweite Runde

    Online-Debattenformat der Juniorprofessur Soziologie der TU Chemnitz thematisiert am 10. September 2025 die Rolle der Solarenergie im Zuge der Energiewende …

  • Gruppe vieler Menschen

    Let's run #TUCgether!

    Zum Jubiläum des Chemnitzer Firmenlaufs gingen 266 Laufbegeisterte für die TU Chemnitz an den Start …

  • Menschen stehen vor einer Leinwand

    Erfolgreiche Summer School an der TU Chemnitz

    Professur Medienpsychologie und die Hochschulallianz Across begrüßten zur Summer School „How much science is in science fiction?“ medienbegeisterte Nachwuchswissenschaftlerinnen und -wissenschaftler aus neun verschiedenen Ländern …

  • Menschen stehen vor einem Haus

    Als Azubi an die Uni? Ja, klar!

    Kanzler der TU Chemnitz begrüßte neue Auszubildende und gratulierte Absolventinnen und Absolventen zum erfolgreichen Berufsabschluss – TU Chemnitz bildet aktuell in zehn Berufen aus …