2016-11-21 4 views
0

Ich habe eine Liste von Dateien, die zu meinem Arbeitsstrom hinzugefügt werden. Sie sind csv mit einem Datumsstempel, um anzugeben, wann sie erstellt werden. Ich muss jede Datei in der Reihenfolge der Datetime im Dateinamen aufnehmen, um sie zu verarbeiten. Hier ist eine Beispielliste, die ich bekomme:Unix-Datei holen nach Zeitstempel

Workprocess_2016_11_11T02_00_12.csv 
Workprocess_2016_11_11T06_50_45.csv 
Workprocess_2016_11_11T10_06_18.csv 
Workprocess_2016_11_11T14_23_00.csv 

Wie würde ich die Dateien zu vergleichen, für die älteste und sich für die chronologische neuere Datei zu suchen? Der Tag, an dem die Dateien ausgegeben werden, ist derselbe, daher kann ich nur den Zeitstempel im Dateinamen verwenden.

+0

Ist das Präfix "Workprocess" das gleiche für alle Dateien? –

+0

Danke für die Berücksichtigung meiner Frage. Ja, das ist üblich. Ich möchte die richtige Datei (in der Reihenfolge) abholen und sie in xyz umbenennen, und dann wäre xyz die Datei, die im Rest des Prozesses verwendet werden soll. – wizengeeky

Antwort

0

Der Vorteil dieses Datumsformat ist, dass es das gleiche lexikalisch und chronologisch sortiert. Also alles, was Sie brauchen, ist

for file in *.csv; do 
mv "$f" xyz 
process xyz 
done 
+0

Glenn, ich muss diese Dateien vergleichen, um zu sehen, welche die älteste ist, und diese zuerst verwenden, dann arbeite ich auf die neuere hin. Wenn der Dateiname Datum und Uhrzeit im Dateinamen hat, wie können Sie diese extrahieren und in einem verschachtelten Vergleich verwenden? – wizengeeky

+0

Sie müssen nicht. Tun Sie dies: 'echo * .csv' - ist die Reihenfolge der Ausgabe korrekt? –

+0

Ja, das habe ich immer verstanden. Vielleicht war ich über mein Problem komplizierter :) Danke für Ihre Hilfe – wizengeeky

Verwandte Themen