Home · Kontakt · Impressum
contents index previous up next
Next: 4.5.9 more Up: 4.5 Arbeiten mit Dateien Previous: 4.5.7 rm

Unterabschnitte



4.5.8 Dateibezeichnung mit Jokerzeichen

Bei der Arbeit mit der Shell kommen Sie oft in Situationen, in denen Sie nicht nur einzelne Dateien oder alle Dateien in einem Verzeichnis ansprechen wollen, sondern nur eine Gruppe von Dateien (z. B. alle HTML-Dateien) bearbeiten möchten. Für diesen Zweck besitzt die Shell die sogenannten Jokerzeichen (Wildcards).

Wenn diese Jokerzeichen eingesetzt werden, gibt die Shell nicht einen einzelnen Dateinamen zurück, sondern eine Liste von Dateinamen, auf die das Muster zutrifft. So erhalten Sie mit dem Muster *.jpg eine Liste aller Dateinamen, die mit .jpg enden.

tapico@defiant:~> echo *.jpg
helm35.jpg helm37.jpg helm38a.jpg helm59.jpg
tapico@defiant:~> cp *.jpg ~/bilder

Denken Sie daran. Die Shell und nicht der Befehl interpretiert das Kommando. Deshalb müssen die Jokerzeichen in manchen Fällen maskiert werden, damit sie unbeschadet an den Befehl übergeben werden können. Probieren Sie den unteren Befehl mal ohne Backslash aus.

tapico@defiant:~> echo \* Hallo \*
* Hallo *

Eine Reihe von Jokerzeichen steht Ihnen zur Verfügung.


4.5.8.1 Asterisk *

Der Asterisk bedeutet im Prinzip alles oder nichts. Er steht für eine beliebige Anzahl beliebiger Zeichen. Wobei beliebige Anzahl auch kein Zeichen bedeuten kann. Z. B. stimmt das Muster lk* mit folgenden Dateinamen überein.

tapico@defiant:~> ls lk*
lk-aufbau-ext2.eps         lk-shell.aux        lk.log
lk-dateibaum.eps           lk-shell.tex        lk.pdf.gz
lk-dateisystem.aux         lk-shell.tex.bck    lk.ps
lk-dateisystem.tex         lk-vorwort.aux      lk.tex
lk-dateisystem.tex.bck     lk-vorwort.tex      lk.tex.bck
lk-installation.aux        lk-vorwort.tex.bck  lk.toc
lk-installation.tex        lk.aux              lktex
lk-installation.tex.bck    lk.dvi

4.5.8.2 Fragezeichen ?

Das Fragezeichen steht für genau ein beliebiges Zeichen.
tapico@defiant:~> ls lk.*
lk.aux  lk.idx  lk.ind  lk.pdf.gz  lk.tex      lk.toc
lk.dvi  lk.ilg  lk.log  lk.ps      lk.tex.bck
tapico@defiant:~> ls lk.???
lk.aux  lk.dvi  lk.idx  lk.ilg  lk.ind  lk.log  lk.tex  lk.toc
tapico@defiant:~> ls lk.??
lk.ps

4.5.8.3 Menge [ZEICHEN]

Mit den eckigen Klammern ist es möglich eine Menge von Zeichen vorzugeben, die an dieser Stelle stehen können. So steht [Aa] für ein Zeichen, daß entweder ein großes oder ein kleines A sein kann. Ein Ausrufezeichen in der eckigen Klammer negiert die Bedeutung der Menge. So steht [!aeiou] für ein Zeichen, daß kein Vokal ist.

Innerhalb der Klammern können nicht nur einzelne Zeichen angegeben werden, sondern auch Bereiche. So steht z. B. [a-z] für alle Kleinbuchstaben und [0-9] für alle Zahlen.

tapico@defiant:~> ls lk.???
lk.aux  lk.dvi  lk.idx  lk.ilg  lk.ind  lk.log  lk.tex  lk.toc
tapico@defiant:~> ls lk.[it]??
lk.idx  lk.ilg  lk.ind  lk.tex  lk.toc
tapico@defiant:~> ls lk.[!it]??
lk.aux  lk.dvi  lk.log
tapico@defiant:~> ls [Hh]*
Home.txt  Hurra.jpg  hans.txt  himmel.jpg
tapico@defiant:~> ls [A-Z]*
Amerika.jpg  Home.txt  Hurra.jpg  Qualle.jpg
tapico@defiant:~> ls *[0-9][0-9].jpg
helm35.jpg  helm37.jpg  helm38.jpg  helm59.jpg


4.5.8.4 Klammerexpansion {WORT1,WORT2,WORT3,...}

Die Klammerexpansion (brace expansion) ist im eigentlichen Sinne kein Jokerzeichen. Sie funktioniert nämlich auch ohne existierende Dateien. Die Funktion ist einfach. Der Ausdruck wird jeweils mit dem in den geschweiften Klammern angegebenen und durch Kommata getrennten Zeichenketten ausgegeben.
tapico@defiant:~> echo "Ich bin "{gut,besser,super}"."
Ich bin gut. Ich bin besser. Ich bin super.
tapico@defiant:~> echo {1,2,3}{1,2,3}
11 12 13 21 22 23 31 32 33

Trotzdem können Sie die Klammerexpansion natürlich auch auf Dateioperationen anwenden.

tapico@defiant:~> ls lk-{kernel,shell}.*
lk-kernel.aux  lk-kernel.tex.bck  lk-shell.tex
lk-kernel.tex  lk-shell.aux       lk-shell.tex.bck
tapico@defiant:~> ls lk-*.{tex,eps}
lk-administration.tex  lk-dateibaum.eps    lk-installation.tex  lk-shell.tex
lk-aufbau-ext2.eps     lk-dateisystem.tex  lk-kernel.tex        lk-vorwort.tex


contents index previous up next
Next: 4.5.9 more Up: 4.5 Arbeiten mit Dateien Previous: 4.5.7 rm
  © 2004 by IT-Dozent Ole Vanhoefer · Zum Seitenanfang