Metazeichen

Auch Wildcards genannt sind: *   ?     [    ]    !   ^     ~ ;   \
Metazeichen werden von der Shell expandiert und das Resultat wird als Parameter an das aufgerufene Programm übergeben.Wichtig: Die Dateinamen-Expansion erfolgt vor dem Aufruf des Programmes!
Achtung für Regular Expression gelten andere Regeln

    Dateinamen-Expansion

    Sie werden von der Shell und auch von verschiedenen Programmen interpretiert. I.d.R. werden sie fast gleich behandelt.



  • * eine beliebige Zeichenkette (auch 0 Zeichen)

    ls -l *.txt     Die Shell erzeugt eine Liste aller Dateinamen im Verzeichnis, die mit .txt enden. Diese Liste wird als Parameterliste an das Kommando ls übergeben


  • ? steht für ein beliebiges Einzelzeichen

  • ls tag_?.txt    nach tag_ darf nur ein einzelnes 
    Zeichen vor dem nachfolgenden . stehen. 
    Nur diese Dateinamen werden aufgelistet

  • [ ] diese Klammern beinhalten eine Auswahlliste.
     ls -l *_[123].php   # listet alle PHP-Dateien  
    die vor .php nur eine der angeführten Ziffern 
    1, 2 oder 3 haben
    ls -l *_[1-3].php # dito aber hier wird ein Bereich verwendet ls -l [A-Z][a-z]*.txt # Muss mit Großbuchstabe beginnen. ls -l [g][a-z]*.php -rw-rw-r-- 1 detlef detlef 28595 14. Mai 2020 grep.php -rw-rw-r-- 1 detlef detlef 9354 16. Sep 10:32 grundlagen_2024_09_16.php -rw-r--r-- 1 detlef detlef 23514 18. Sep 11:16 grundlagen.php

  • ^ oder ! Verneinung einer Auswahlliste
     
    Sie werden in Verbindung mit einer Auswahlliste verwendet
    ls -l  *_[^1234].php   # der Dateiname darf keine der Ziffern 
               1, 2, 3 oder 4 unmittelbar vor .php haben
    ls -l  *_[!1-4].php     dito aber hier als Bereich angegeben
    
    
    ls -l [g][a-z]*[!0-9_].php
    -rw-rw-r-- 1 detlef detlef 28595 14. Mai 2020  grep.php
    -rw-r--r-- 1 detlef detlef 23514 18. Sep 11:16 grundlagen.php
    
    Durch den verneinten Bereich  [!0-9_] fällt die Datei 
    grundlagen_2024_09_16.php  aus dem Raster.
    

  • ~ tilde steht für das Heimatverzeichnis
    cd ~        # geht in das HOME-Verzeichnis des Users
    ls ~otto/bin  # listet das bin Verzeichnis des Users otto
    

  • \ Hebt die Sonderbedeutung des nachfolgenden Zeichens auf
    ls -l abc\*.txt  # Hier wird der * als normales Zeichen behandelt
                   Es nur die Datei abc*.txt angezeigt.
     
    


Regular Expression