Inhaltsverzeichnis

https://www.youtube.com/watch?v=BMuWVFidzaw&t

Datei-Globbing

EINFACHES GLOBBING

* Nichts oder beliebige Anzahl beliebiger Zeichen
? Exakt ein beliebiges Zeichen
[abc] Eines der angegebenen Zeichen
[a-z] Alle Kleinbuchstaben
[A-Z] Alle Großbuchstaben
[0-9] Alle Ziffern
[!abc] Negierung der Zeichenmenge
[ ^abc] Negierung der Zeichenmenge (nicht POSIX kompatibel, Bash ok)
{anna,berta} Brace Expansion greift vor Globbing

GLOBBING SONDERZEICHEN

* Stern
? Fragezeichen
[ Öffnende eckige Klammer
] Schließende eckige Klammer

BRACE EXTENSION SONDERZEICHEN

{ Öffnende geschweifte Klammer
} Schließende geschweifte Klammer

SHELL SONDERZEICHEN

Leerzeichen
$ Dollar (Variablenexpansion)
` Backtick (Command substitution)
" Doppelte Anführungszeichen
' Einfache Anführungszeichen
\ Backslash selbst
! Ausrufezeichen (History expansion in bash)
& Ampersand (Background-Prozess)
; Semikolon (Befehlstrennung)
| Pipe
( ) Klammern (Subshell)
< > Umleitungen
# Kommentar (am Anfang)
~ Tilde (Home-Verzeichnis)
Newline -
Zeilenumbruch -

Globbing POSIX Zeichenklassen

[[:alnum:]] Ziffern und Buchstaben (alphanumerisch)
[[:alpha:]] Buchstaben (a-z, A-Z)
[[:digit:]] Ziffern (0-9)
[[:lower:]] Kleinbuchstaben (a-z)
[[:upper:]] Großbuchstaben (A-Z)
[[:blank:]] Leerzeichen und Tabs
[[:space:]] Alle Whitespace-Zeichen (Leerzeichen, Tab, Newline, etc.)
[[:punct:]] Satzzeichen
[[:print:]] Druckbare Zeichen (inkl. Leerzeichen)
[[:graph:]] Sichtbare Zeichen (druckbar ohne Leerzeichen)
[[:cntrl:]] Steuerzeichen
[[:xdigit:]] Hexadezimale Ziffern (0-9, a-f, A-F)

Erweiterte Globbing Funktionen mit Bash Modulen

Bash Modul aktivieren shopt -s MODUL
Bash Modul deaktivieren shopt -u MODUL
Bash Modul Status abfragen shopt MODUL
Alle Bash Module Status abfragen shopt

Bash Module für GLOBBING

dotglob * matcht auch Dateien, die mit . beginnen
failglob Falls kein Match > Fehler statt unverändertes Muster
globstar ** matcht rekursiv in Unterverzeichnissen
nocaseglob Globbing ignoriert Groß-/Kleinschreibung
nullglob Kein Treffer > leere Liste statt unverändertes Pattern

extglob

?(pattern) Kein oder ein Vorkommen
*(pattern) Kein oder beliebig viele Vorkommen
+(pattern) Ein oder mehr Vorkommen
@(pattern) Genau ein Vorkommen
!(pattern) Alles außer dem Muster