2016-01-11 3 views
6

Ich möchte eine sortierte Liste von Dateien erhalten. Dateien haben die folgende Namenskonvention:Linux - Sortieren von Dateien nach Namensteil (keine Trennzeichen)

DATENUMBER.txt (ohne Leerzeichen).

Z. B. Datei 3 auf 2015-12-09 wie folgt aussieht: 201512093.txt

Die version sort Möglichkeit ls mir nicht helfen:

ls -v: 
201512183.txt 
201512184.txt 
201512188.txt 
201512191.txt 
201512195.txt 
201512199.txt 
2015121810.txt 
2015121813.txt 
2015121910.txt 
2015121911.txt 
2015121932.txt 

sort -V, --key=1.[number]do not work too wie ich anderen Dateinamen Länge haben.

Da ich kein Delimeter zwischen dem Datum und der Nummer habe, funktioniert sort -t, -k nicht auch.

Wie man sehen kann, Ich brauche von ersten 8 Symbole in Dateinamen und danach, durch den anderen Teil der Linie Liste der Dateien zu sortieren.

Die erwartete Ausgabe:

201512183.txt 
201512184.txt 
201512188.txt 
2015121810.txt 
2015121813.txt 
201512191.txt 
201512195.txt 
201512199.txt 
2015121910.txt 
2015121911.txt 
2015121932.txt 

Wie kann ich es tun (mit mit )? Vielen Dank.

+1

Ihre Ausgabe zeigt Dateien bereits sortiert. Was ist Ihre erwartete Leistung? – anubhava

+0

Sorry, hinzugefügt, was ich erwarte! –

+0

Wie sollen sie sortiert werden? Sie sehen schon sortiert aus ... – 123

Antwort

10

Dies wird dergleichen tun:

sort -k1.1,1.8 -k1.9n 

dass zwei Tasten definiert eine feste Länge 8-Zeichen-Taste (Feld ein, Figuren 1 bis 8) und der Sekundärschlüssel ist, der erste, der ein Wesen numerischer Schlüssel beginnend bei Feld eins Zeichen 9 (und sich bis zum Ende der Zeile erstreckend).

Bei der numerischen Sortierung wird die Nummer verwendet, die am Anfang des Schlüssels gefunden wird. Sie müssen also nicht ausgefeilter werden. Aber wenn man genauer sein möchten, können Sie sort sagen . zu verwenden, um Felder zu begrenzen, und dann drei Tasten verwenden:

sort -t. -k1.1,1.8 -k1.9,1n -k2 

Sie könnten diese müssen mit einem POSIX-Standard sort Dienstprogramm, wenn Ihre Dateinamen haben unterschiedliche Erweiterungen und Sie möchten, dass die Erweiterungen die Sortierung beeinflussen. GNU sort (unter Linux verwendet) scheint den gesamten Schlüssel in einer numerischen Sortierung zu verwenden, aber der POSIX-Standard schlägt vor, dass ein numerischer Sortierschlüssel nur aus dem numerischen Teil besteht.

+1

:(wurde nur Post dies – 123

+0

Ja, es hat den Job gemacht! Vielen Dank :) –