Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

sort Sortierungsfehler mit a-zÄÖÜßäöü bzw. öÄÜßüaÖb-näo-z

Frage Entwicklung Batch & Shell

Mitglied: 45753

45753 (Level 1)

09.08.2007, aktualisiert 13.08.2007, 4434 Aufrufe, 5 Kommentare

Hallo zusammen,

"sort" hat Probleme mit den Buchstaben ä,ö,ü,ß.

mit Gebietsschema "C" sortiert er

a-zÄÖÜßäöü

und ohne Gebietsschema "C" sortiert er

öÄÜßüaÖb-näo-z

Im Script hab ich nun mit Gebietsschema "C" ein alphabetfix eingebaut in dem z.b. alle ä nach aeþþþ umgewandelt werden, dann der Text mit sort sortiert wird und dann die Buchstaben wieder zurückgewandelt werden.
Nur bringt dies das Problem mit sich, dass alle äöü - egal ob gross ober klein je nach Angabe in klein äöü ODER gross ÄÖÜ zurückgewandelt werden. Der Befehl

set "fixumlaute=%fixumlaute:ä=aeþþþ%" achtet nicht auf gross-/kleinschreibung. Ä's ob gross oder klein werden nach aeþþþ umgewandelt.

Gibt es dafür eine Lösung ?

Gruesse, wobleibtdiezeit
Mitglied: Seltermann
10.08.2007 um 17:02 Uhr
wie genau sieht denn der Kram aus den du sortieren lassen willst?
Stehen die Wörter untereinander in einer Textdatei?
Oder willst du Dateien sortieren lassen?
Bitte warten ..
Mitglied: 45753
10.08.2007 um 19:22 Uhr
Hallo Setlermann,

Ich hab nicht ganz raus auf was du hinaus willst. Deshalb erklaere ich Dir einfach mal was loss ist...

In der Textdatei befinden sich Auflistungen von Dateien und/oder Ordnern aus einem Ordner +/- deren Unterordnern. Dies lass ich mir in eine Textdatei ausgeben.

Ich beschraenke es mal auf den wichtigsten Ausgabenverlauf:

1. die Ausgabe mit Unterordnern und ohne sort nach Dir Parametern /ogn /s
zuerst alphabetisch die Ornder und dann alphabetisch die Dateien:

"Ordner 1\"
"Ordner 2\"
"Neue Datei.txt"
"Überarbeitete Datei.txt"
"Ordner 1\Änderung in Datei.txt"
"Ordner 2\Überarbeitete Datei.txt"

2. Die Ausgabe aus 1. aber ohne die Pfadeangaben der Unterordner und immer noch ohne sort:

"Ordner 1\"
"Ordner 2\"
"Neue Datei.txt"
"Überarbeitete Datei.txt"
"Änderung in Datei.txt"
"Überarbeitete Datei.txt"

3. Die Ausgabe aus 2. und diesmal mit sort und dem Problem welches ich geschildert habe.
Um es komplett zu machen wieder zuerst alphabetisch die Ornder und dann alphabetisch die Dateien. Das hab ich gelost indem ich die Ausgabe der Ordner und die Ausgabe der Dateien in zwei verschiedene Textdateien umgelenkt habe. Diese werden mit sort einzeln sortiert und dann wieder zu einer Textdatei zusammengefuegt. Und so haette ich nun gerne die Ausgabe.

"Ordner 1\"
"Ordner 2\"
"Änderung in Datei.txt"
"Neue Datei.txt"
"Überarbeitete Datei.txt"
"Überarbeitete Datei.txt"

da die sortierung ohne Gebietsschema "C" alles verkrüppelt nehme ich diese also nicht. Mit Gebietsschema "C" kommen alle Umlaute und das ß nach dem Buchstaben z. Und so sieht die Ausgabe nun aus:

"Ordner 1\"
"Ordner 2\"
"Neue Datei.txt"
"Änderung in Datei.txt"
"Überarbeitete Datei.txt"
"Überarbeitete Datei.txt"

wenn ich nun mein %fixumlaut% aktiviere, dann sieht die Ausgabe so aus:

"Ordner 1\"
"Ordner 2\"
"änderung in Datei.txt"
"Neue Datei.txt"
"überarbeitete Datei.txt"
"überarbeitete Datei.txt"

alphabetisch korrekt, doch die Gross-/Kleinschreibung ist futsch - und genau das ist mein Problem welches ich oben geschildert habe. Vielleicht bekommt man die Lösung durch eine andere Herangehensweise auf die ich aber noch nicht gekommen bin....

[Edit]

...verschmerzbar waere nur die ersten Buchstaben der Objektnahmen auf umlaute zu prüfen um nur diese bei bedarf zu aendern. Also...

set "fixumlaut_firstletter=%fixumlaut:~0,1%
if "%fixumlaut_firstletter%" == "ä" set "fixumlaut_firstletter=aeþþþ
if "%fixumlaut_firstletter%" == "Ä" set "fixumlaut_firstletter=Aeþþþ
...
...
...und das gleiche beim Zurueckwandeln - also insgesamt 12 Abfragen pro Datei. Die Umlaute innerhalb der Objektnamen wuerden dann natuerlich nicht mitverarbeitet werden.
Nur ist das auch keine echte Lösung. Und so muss die Wandlung nachwievor nur als auswaehlbare Option in der Batch bleiben...

[Edit]

Gruesse, wobleibtdiezeit
Bitte warten ..
Mitglied: Seltermann
11.08.2007 um 10:26 Uhr
Hi wobleibtdiezeit,

Hier ist mal ein Link zum Thema Umlaute.

Die deutschen Umlaute sind generell schon immer ein Thema für sich gewesen. Ich hatte selber schon einiges hin und her mit der Datenbank in der Firma.

Schreib mal dann zurück ob du das Problem gelöst bekommen hast.
Kann mich erst am Montag damit weiter beschäftigen.

Also bis dann
Bitte warten ..
Mitglied: 45753
11.08.2007 um 10:28 Uhr
Hallo Seltermann.

Hier die Lösung...

Bei der 3. Ausgabe (separate Textdatei fuer Ordner + separate Textdatei fuer Datein) machte ich den Fehler und stellte chcp auf 1252. Man muss ihn auf 850 belassen. Zudem wandert mein erster %umlautfix%...

set "umlautfix=%umlautfix:ä=aeþþþ%
set "umlautfix=%umlautfix:ö=oeþþþ%
set "umlautfix=%umlautfix:ü=ueþþþ%
set "umlautfix=%umlautfix:ß=sþþþ%

...in den Muell. Mit anderen Worten man gibt den Text einfach aus ohne irgend eine weitere Einstellung/Veraenderung.

Nun sortiert man die zwei Textdateien mit sort und ohne Gebietsschema "C".

Beim separaten wiedereinlesen der zwei Textdateien stellt man vorher chcp auf 1252.
In der For-Schleife laest man nun folgenden %umlautfix% über jede textzeile drüberlaufen...

set "umlautfix=%umlautfix:Ž=Ä%
set "umlautfix=%umlautfix:™=Ö%
set "umlautfix=%umlautfix:š=Ü%
set "umlautfix=%umlautfix:„=ä%
set "umlautfix=%umlautfix:”=ö%
set "umlautfix=%umlautfix:=ü%
set "umlautfix=%umlautfix:á=ß%

...und gibt die gewandelten Zeilen in eine neue Textdatei wieder aus.

Und nun stimmt die Sortierung von vorne bis hinten.

Ohne Deinen Link waere ich auf die Idee allerdings nicht gekommen - THX a lot!

...wenn man eine Textdatei in der sich umlaute befinden sortieren moechte, dann muss man beim Einlesen dieser zuerst dem %Umlautfix% in entgegengesetzte Richtung durchfuehren - also - set "umlautfix=%umlautfix:Ä=Ž% - usw. und dies in eine Textdatei ausgeben. Dann diese mit sort sortieren. Nun diese wieder einlesen und den Fix - set "umlautfix=%umlautfix:Ž=Ä% - usw. drüberbügeln und in eine Textdatei ausgeben.

[Edit]

Ich sehe gerade, dass das Zeichen fuer ü nicht angezeigt wird. In der ersten Textausgabe ohne irgend eine Einstellung wirst du es aber selber sehen koennen...

[Edit]

Gruesse, wobleibtdiezeit
Bitte warten ..
Mitglied: Seltermann
13.08.2007 um 15:48 Uhr
Klasse!!! Werde das mal morgen probieren. Hab nämlich gerade noch anderweitig zu tun.

Gruß Seltermann
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...