Pro-Linux

Pro-Linux Diskussions- und Hilfeforum
Aktuelle Zeit: 16. Nov 2018 13:14

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: bash ls [x-z]*
BeitragVerfasst: 30. Sep 2006 14:17 
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


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 30. Sep 2006 17:15 
Offline
Benutzeravatar

Registriert: 11. Feb 2006 19:10
Beiträge: 3569
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.


Nach oben
   
 Betreff des Beitrags: lc_all
BeitragVerfasst: 01. Okt 2006 9:54 
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


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 01. Okt 2006 12:40 
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


Nach oben
   
 Betreff des Beitrags: treffer
BeitragVerfasst: 01. Okt 2006 13:49 
Hallo,

und wieder einen Treffer gelandet:
nach
Code:
export LC_COLLATE=C
wird es so angezeigt wie es richtig ist ;-)

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


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 01. Okt 2006 17:51 
Offline
Benutzeravatar

Registriert: 11. Feb 2006 19:10
Beiträge: 3569
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.


Nach oben
   
 Betreff des Beitrags: sortieren
BeitragVerfasst: 02. Okt 2006 8:37 
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


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 02. Okt 2006 9:38 
Offline
prolinux-forum-admin
Benutzeravatar

Registriert: 14. Jan 2000 15:37
Beiträge: 699
Wohnort: Jülich
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..."


Nach oben
   
 Betreff des Beitrags: ;-)
BeitragVerfasst: 02. Okt 2006 11:47 
Hallo,

vielen Dank für die Aufklärung ;-)

Grüße
sumsi


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 9 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de