-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hallo Al, zwar habe ich keine Lösung, aber ... Ich habe im Verzeichnis zvol/14Ele/unfold viele Unterverzeichnisse der Form yyyy/mm/dd und darin Dateien mit den Namen yyyymmddHHMMSS*.vol, also z.B. zvol/14Ele/unfold/2013/05/09/2013050905502200dBZ.vol Zum Test habe ich damit Folgendes getan: 1. find zvol/14Ele/unfold/* -maxdepth 3 | sort > ~/dirs 2. sort ~/dirs > dirs.sort 3. find zvol/14Ele/unfold/* -maxdepth 3 > ~/dirs.unsort Und anschließend habe ich mit find dirs und dirs.sort und dirs.unsort verglichen. Ergebnis: dirs ist mit dirs.sort identisch, d.h. das Sortieren hat funktioniert. dirs.sort und dirs.unsort sind _nicht_ identisch, d.h. find ohne ein sort macht nicht die richtige Reihenfolge. LC_ALL und LC_COLLATE sind überhaupt nicht gesetzt bei mir, LANG ist de_DE.UTF-8. Ich verwende OS12.3 64bit. Vielleicht hilft Dir das ja irgendwie weiter... Gruß Jan Am 15.03.2014 22:21, schrieb Аl Воgnеr:
Am Sa, 15 Mär 2014 17:31:40 CET schrieb David Haller:
Hallo David,
Am Sat, 15 Mar 2014, Rainer Sokoll schrieb:
Am 13.03.2014 um 20:28 schrieb ?l ??gn?r <suse-ml@corr.eu.org>:
Genau kann ich die Sortierung nicht testen, meistens stimmt so ja, aber manchmal sehe ich, dass ein Ordner von der alfabet. Sortierung früher abgearbeitet wird.
sort verhält sich je nach LC_* unterschiedlich. Setze doch mal LC_ALL=C - bleibt das Problem?
Besser: LC_COLLATE=POSIX
Und Al, ich kapiere nicht so recht was du eigentlich willst,
Ich bilde mir ein, ich las da mal irgendwas zur Problematik mit find und sort, hatte damals aber keine Zeit das im Detail zu verfolgen und dachte, du kannst sofort sagen, dass meine Syntax nicht optimal ist und was anderes besser ist. Wenn dir dazu nichts einfällt, dann werde ich mich wohl abfinden müssen. Es ist ja auch nicht so wichtig.
also welche Verzeichnisse welcher Stufe. Irgendwas unter:
/d1/d2/d3/foo*
ok, soweit. Aber dann? Willst du nur (sortiert) die Namen der Unterverzeichnisse, auf die foo* passt oder was?
Nehmen wir den einfachsten Fall, dass alle Verzeichnisse einer Suche nach Ordner auf gleichem Level gewünscht sind und folgendes gefunden wird:
/d1/d2/d3/2009-01 /d1/d2/d3/2010-04 /d1/d2/d3/2012-11
Das wird dann sortiert, siehe Eingangsposting.
Wenn ich nun in der Schleife den Ordner mit echo anzeigen lasen und dabei folgendes sehen _könnte_, dann frage ich mich warum
/d1/d2/d3/2009-01 /d1/d2/d3/2012-11 /d1/d2/d3/2010-04
Bei tausenden bzw. deutlich mehr Ordnern ist die Logik bzw. das Problem nicht so leicht zu lokalisieren.
Ich wundere mich eben, wenn ich, um beim Beispiel zu bleiben, 2012 kommt und somit alles aus 2010 erledigt sein sollte, und irgendwann später sehe ich 2010. In der Pipe ist ja sort.
Daher nahm ich an, dass aus welchen Gründen auch immer der sort-Befehl nicht wirksam ist und mir darauf jemand grundsätzlich antworten könnte. Eines der Probleme ist, dass ich einfach nicht annehmen kann, dass 2010 abgearbeitet ist, wenn man 2012 sieht. Ansonsten gibt es ja keine Auswirkungen.
Beschreib mal, was du machen willst. Nicht wie.
Ich will Ordner (alle mit gleicher Tiefe) suchen, die dann _sortiert_ abgearbeitet werden sollen, dh der Ordner ist das Argument für das Bash-Script, um ein einfaches Beispiel zu nennen.
Das Suchergebnis wäre also, zB
/d1/d2/d3/2009-01 /d1/d2/d3/2012-11 /d1/d2/d3/2010-04
Das soll dann sortiert werden und das Ergebnis soll dann an ein Script übergeben werden, also
script.sh /d1/d2/d3/2009-01 script.sh /d1/d2/d3/2010-04 script.sh /d1/d2/d3/2012-11
Testen kann man das IMHO nicht sehr einfach, weil es ziemlich sicher mit dem kleinen Beispiel passt.
Je nachdem ist das dann nämlich eigentlich trivial[1]. Nur hast du glaub ein bissl das sprichwörtliche Brett vor'm Kopp und wir kommen nicht drauf was du eigentlich willst, und haben somit gewissermaßen auch nen Brett vor'm Schädel ;)
Ich glaube, ihr könnt es nicht nachvollziehen, weil das Problem erst in der großen Masse auftritt. Vielleicht ist es ein Bug, der nicht auffällt, weil er schwer zu reproduzieren ist und oft ja auch egal ist. Vielleicht ist einfach das Suchergebnis zu groß und es wird deswegen nicht korrekt sortiert.
Also sowas wie:
- ich will die Verzeichnisse mit ... [unterhalb $PFAD, sortiert nach ...] - und dann will ich darin ... machen ...
-dnh
[1] z.B. in perl mit opendir/readdir/grep/map o.ä. oder per File::Find, oder schlicht per bash
Ich denke, das sollte man auch mit der Bash hinbekommen.
- -- _________________________________________________________________ Jan Handwerker http://www.imk-tro.kit.edu/jan.handwerker.php Recursion (f) --> Recursion Mit LaTeX wär das nicht passiert. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) Comment: Digitale Unterschrift mit GnuPG Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iEYEARECAAYFAlMmyNQACgkQ4wryzGTbiqgQgACfZvDmBKV/2GddgZrg3u25w0Fb MxgAnj7E2tOEdFI3oXmxVTMpZEKvQusk =sxBq -----END PGP SIGNATURE----- -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org