Pattern-Matching-Problem

23/03/2008 - 17:13 von Pit Kobel | Report spam
Tach auch,

ich habe hier ein Verstàndnisproblem mit dem Pattern-Matching meiner
shell (BASH_VERSION='3.2.25(1)-release', Ubuntu 7.10).

Ich will mir alle Verzeichnisse, die mit einem Grossbuchstaben beginnen,
anzeigen lassen. Mein Ansatz dazu:

pkobel@roadrunner:/media/disk-1/backup/music/mp3$ ls -d [A-Z]*

Nach meinem Verstàndnis des Manuals sollte das funktionieren, es werden
aber alle (also auch die mit Kleinbuchstaben beginnenden) aufgeführt.

Auch [:upper:]* hat den gleichen Effekt.

Mache ich hier einen Denkfehler oder muss ich die Shell verprügeln?

Was wie erwartet funktioniert, ist [ABCDEFGHIJKLMNOPQRSTUVWXYZ]*


Wer erleuchtet mich?


Und Vorsicht mit den Eiern heute...
Pit
 

Lesen sie die antworten

#1 Heike C. Zimmerer
23/03/2008 - 17:30 | Warnen spam
Pit Kobel writes:

Ich will mir alle Verzeichnisse, die mit einem Grossbuchstaben beginnen,
anzeigen lassen. Mein Ansatz dazu:

:/media/disk-1/backup/music/mp3$ ls -d [A-Z]*

Nach meinem Verstàndnis des Manuals sollte das funktionieren, es werden
aber alle (also auch die mit Kleinbuchstaben beginnenden) aufgeführt.



Nicht ganz. Wenn Du genau hinschaust, wird das kleine 'a' fehlen.

Erklàrung: [A-Z] enthàlt alle Buchstaben, die in der momentanen
Sortierreihenfolge (LC_COLLATE) zwischen (inklusive) A und Z liegen.
Das von Dir gewünschte Verhalten erhàltst Du mit LC_COLLATE=C.

Ähnliche fragen