Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
bash ls [x-z]*

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Software
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
sumsi
Gast





BeitragVerfasst am: 30. Sep 2006 14:17   Titel: bash ls [x-z]*

Hallo,

habe irgendwie einen Hänger:

Liste ich
Code:
 ls /usr/bin/[xyz]*
, so wird alles meinermeinung nach korrekt und klein ausegeben.

Mache ich aber
Code:
ls /usr/bin/[x-z]*
, so werden alle mit x bis z beginnenden Dateine mit klein- und großgeschrieben Anfangsbuchstaben ausgegeben.

Ist das richtig, spinnt meine Bash oder liege icharg daneben?

bye sumsi
 

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 30. Sep 2006 17:15   Titel:

Hm. Ich hab gerade mal geguckt, ob man dieses Verhalten mit shopt -u nocaseglob beeinflussen kann, scheint aber nicht so.
Eine LC_ALL=C bash zeigt dieses Verhalten aber nicht.
Es scheint, als hättest du einen Bug in der deutschen Lokalisierung von libc gefunden. Bitte dort nachgucken.

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

sumsi
Gast





BeitragVerfasst am: 01. Okt 2006 9:54   Titel: lc_all

Hallo,

danke -*Treffer*.

Die "LC_ALL" war nicht gesetzt, weise ich die dem Wert "C" zu, so funktioniert die ls-Anweisung richtig.

Und wie stelle ich das nun richtig ein? Weise ich LC_ALL nun C zu, dann werden doch alle locale-Einstellungen überschrieben. Einige Anwendungen brauchen aber "de_DE.UTF-8", sonst werden werden die Sonderzeichen nicht richtig dargestellt.

Grüße sumsi
 

PDA
Gast





BeitragVerfasst am: 01. Okt 2006 12:40   Titel:

Stelle mal nur die LC_CTYPE
Code:
export LC_CTYPE="C"

ein. Wenn es dann klappt weisst du es.
Es kann auch die (und/oder)
Code:
LC_COLLATE

sein. Ich meine aber nicht.

Wenn ich wieder vor einer Linuxkiste sitze und daran denke
werde ich es mal versuchen ob das bei mir auch so ist.

Was für eine Version hast du denn? --> libc
 

sumsi
Gast





BeitragVerfasst am: 01. Okt 2006 13:49   Titel: treffer

Hallo,

und wieder einen Treffer gelandet:
nach
Code:
export LC_COLLATE=C

wird es so angezeigt wie es richtig ist Wink

Version ist die glibc-2.3.5, aber so richtig verstehen muss ich das nicht.
Was hat die Sortierreihenfolge mit der Auswahl zu tun?

Grüße sumsi
 

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 01. Okt 2006 17:51   Titel:

Woher soll der Rechner denn wissen, dass mit x-z x|y|z gemeint ist, wenn er nicht in einer Liste nachguckt, welche Reihenfolge die Zeichen denn nun im Alphabet haben sollen? Evtl. gibt es ja Alphabete, bei denen zwischen x und z z.B. nicht nur y, sondern auch noch y mit Trema kommt...

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

sumsi
Gast





BeitragVerfasst am: 02. Okt 2006 8:37   Titel: sortieren

Aber es geht doch um Gross- und Kleinschreibung.
Würde es bedeuten, dass die Buchstaben auf ASCII-Zeichen zurückgeführt (?), in dem einen Code ein grosses und in dem anderen Code ein kleines X bedeuten?

grüße sumsi
 

jochen
prolinux-forum-admin


Anmeldungsdatum: 14.01.2000
Beiträge: 699
Wohnort: Jülich

BeitragVerfasst am: 02. Okt 2006 9:38   Titel:

Hi,

das ist relativ einfach zu erklären. LC_COLLATE legt fest, wie die Sortierreihenfolge auszusehen hat. Nach purem ASCII kommen zuerst die Großbuchstaben, dann die Kleinbuchstaben, was man mit "LC_COLLATE=C" einstellen kann.

Das C darf man sich als "Computer" denken - es wird nicht groß was festgelegt, sondern der Computer soll sortieren, wie es für ihn "natürlich" ist (also ASCII bezgl. der Zeichen bis 127, be 128-255 also Latin1 oder UTF8). Also steht in der Sortierreihenfolge y zwischen x und z, Y ist viel weiter vorne.

Im Deutschen gilt aber, dass Groß- und Kleinbuchstaben gleich zu behandeln sind! Setzt man dies über LC_COLLATE=de, dann steht y zwischen Y und Z...

Verwendest Du [xyz], hast Du die gewünschten Zeichen exakt angegeben - es erscheinen auch nur Kleinbuchstaben. [x-z] dagegen lässt den COLLATE-Mechanismus greifen, da in D dadurch offiziell auch die Großbuchstaben gleichberechtigt sind.

Ich persönlich hasse dieses Verhalten auch. Wenn ich nicht sowieso mit einer englischen Sprachumgebung arbeite, setze ich meist "LANG=de" und "LC_COLLATE=C". Vielleicht sind auch die Kommandos "locale" und "localedef" für Dich interessant...

Jochen
_________________
Die grösste Lüge der EDV? "Mal eben..."
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

sumsi
Gast





BeitragVerfasst am: 02. Okt 2006 11:47   Titel: ;-)

Hallo,

vielen Dank für die Aufklärung Wink

Grüße
sumsi
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Software Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy