Zeilen mit Datumsangabe chronologisch sortieren

11/01/2008 - 10:35 von Fr | Report spam
[SuSE-10.1 Linux]
[/bin/bash --version --> GNU bash, version 3.1.17(1)-release (x86_64-suse-linux)]


Hallo zusammen,

ich habe ein Verzeichnis mit PDF-Dokumenten folgender Namenskonvention:

alfa-numerisch-alfa-TT.MM.JJ-alfa.pdf

Legende:
* alfa: alfabetischer Text (A-Za-z), kurz, jedoch variable Lànge, keine Leerstellen
* numerisch: nur Ziffern, konstant 7 Ziffern
* TT.MM.JJ: das interessante Feld, ein Datum

Ich möchte dieses Verzeichnis nach JJMMTT sortiert haben, also
chronologisch nach dem als "TT.MM.JJ" gegebenem Datum.

Kann mir bitte jemand helfen?

Danke und viele Grüße aus den sonnigen Alpen,
Frank
 

Lesen sie die antworten

#1 Juergen P. Meier
11/01/2008 - 10:42 | Warnen spam
:
[SuSE-10.1 Linux]

ich habe ein Verzeichnis mit PDF-Dokumenten folgender Namenskonvention:

alfa-numerisch-alfa-TT.MM.JJ-alfa.pdf

Legende:
* alfa: alfabetischer Text (A-Za-z), kurz, jedoch variable Lànge, keine Leerstellen
* numerisch: nur Ziffern, konstant 7 Ziffern
* TT.MM.JJ: das interessante Feld, ein Datum

Ich möchte dieses Verzeichnis nach JJMMTT sortiert haben, also
chronologisch nach dem als "TT.MM.JJ" gegebenem Datum.

Kann mir bitte jemand helfen?



Erste Moeglichkeit: erstellen einer Liste, diese so umbauen, dass
die zweite Haelfte der Dateinamen am Anfang steht:
(zwei sed wegen der UEbersicht und Zeilenlaenge):

ls *.pdf |
sed 's/\(.*\)-\([0-3][0-9]\.[0-1][0-9]\.[0-9]*-[^ ]*.pdf\)$/\2-\1/' |
sed 's/\([0-3][0-9]\)\.\([0-1][0-9]\)\.\([0-9]*\)/\3 \2 \1/' |
sort -n |
sed 's/\([0-9]*\) \([0-3][0-9]\)\ \([0-1][0-9]\)\ /\3-\2-\1/' |
sed 's/^\([0-3][0-9]\.[0-1][0-9]\.[0-9]*-[^ ]*.pdf\)-\(.*\)/\2-\1/'

Ungetestet, sollte aber funktoinieren, sofern der letzte alfa-Teil
wirklich keine Leerzeichen aufweist, und in den ersten beiden
alfa-Teilen die Zeichenkette ".pdf" nicht vorkommt (dann wuerde
das zurueckbauen in der letzten sed-zeile nicht klappen).

Zweite Moeglichkeit:
Dafuer sorgen, dass TT, MM und JJ an fester Postion in der Liste
stehen, wegen variabler Laenge von alpha schwierig zu realisieren.
Dann sort mit Sort-keys so verwenden, dass es nach diesen Feldern
sortiert. Da ich mit Sort-keys auf Kriegsfuss stehe, bleibe ich ein
Beispiel schuldig.

Juergen
Juergen P. Meier - "This World is about to be Destroyed!"
end
If you think technology can solve your problems you don't understand
technology and you don't understand your problems. (Bruce Schneier)

Ähnliche fragen