• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Metazeichen und Casesensitivity auf der shell

Hi zusammen,
bisher war es so, dass wenn ich "ls -l [A-Z]*" eingegeben habe, ich auch nur Dateien angezeigt bekam, die mit Grossbuchstaben beginnen.
Jetzt bekomme ich alle (na ja, fast alle) angezeigt. die Datei abcdefg wird nicht angezeigt. Die Datei info.txt aber schon. Das hat für mich jegliche Logik verlohren. Alle alten scripte werden also jetzt nicht mehr korrekt laufen?
Ich benutze SUSE-Linux 11.4 64Bit und ich arbeite auf der bash, aber bei SUSE-Linux 11.3 klappt es auch nicht.

Kann mir da jemand weiterhelfen?
 

spoensche

Moderator
Teammitglied
Der Ausdruck "[A-Z]" wird nicht beachtet, weil bei POSIX- Regular Expressions [ und ] escaped werden müssen. Es muss also "\[A-Z\]*" lauten. Bei erweiterten POSIX- Regex ist ein Escapen nicht mehr nötig.
 

RME

Advanced Hacker
http://www.opensuse-forum.de/metazeichen-und-casesensitivity-opensuse-news/neuigkeiten-f29/t5547-f3/?highlight=
 
Hallo,
vielen Dank für die Antworten, hat mir sehr geholfen.
ich habe die gleiche Frage auch unter : http://www.opensuse-forum.de gestellt.
Aber da hat RME ja schon drauf hingewiesen.
Die Antwort hier hat mir aber direkt weitergeholfen.

Also vielen Dank nochmal
 

framp

Moderator
Teammitglied
Black_Jack_1959 schrieb:
...ich habe die gleiche Frage auch unter : http://www.opensuse-forum.de gestellt.
Aber da hat RME ja schon drauf hingewiesen.
Die Antwort hier hat mir aber direkt weitergeholfen. ...
Räusper ... das nächste Mal enpfehle ich Dir diesen Link zu lesen und zu beachten ;)
 
oops,
und sorry.
das ist mein Erstkontakt mit UNIX/Linux - Foren.
Daher konnte ich nicht wissen, wie schnell ich Hilfe bekomme.
Die Antwort war mir aber sehr wichtig (ich brauchte sie heute morgen). Daher habe ich in mehreren Foren gepostet.
Danke für die wirklich nette Zurechtweisung! Da bin ich aus anderen Foren einen durchaus prolligeren Ton gewohnt.
Ich werde den Hinweis zukünftig berücksichtigen, er leuchtet mir auch vollkommen ein.
Der Leidensdruck war nur so hoch, dass ich für solche Überlegungen keine Ressourcen frei hatte.
Also noch einmal Danke für die Hilfe und die Info über Multiposting bzw. Crossposting.
 
Punkt 13 beschreibt diesen Unterschied zu alten bash:
http://tiswww.case.edu/php/chet/bash/COMPAT

Das hab ich 2005 mal geschrieben:
Wo wir gerade bei seltsamen Effekten sind: Habe vorgestern den heftigsten "Shock" in den letzten Jahren bekommen. Hab schon an mir gezweifelt.

Thema "Lokalisierung bash"
=> wenn LC_COLLATE nicht "C" ( oder LANG = C ) setzt mal : "LC_COLLATE=de_DE.utf8" und macht eine "echo [A-Z]*"

Ihr werdet alle Dateien mit "AaBbCcDd...Z" am Anfang sehen.

Großes OOps bei "rm -i [A-Z]*" um nur die Dateien mit Großbuchstaben zu löschen...

Siehe auch: http://cnswww.cns.cwru.edu/~chet/bash/COMPAT chapter 13.

Eine Warnung an alle: Nutzt keine "Character-range" mehr bei bash und Lokalisierung.

Hadhavenoniceday ;-)

Ich setze in meinen Shells immer export LC_COLLATE=C

Haveaniceday
 
Oben