Solaris + Sortieren von Dateien nach Datum und Uhrzeit per Sortierbefehl

Solaris + Sortieren von Dateien nach Datum und Uhrzeit per Sortierbefehl

Ich habe eine lange Liste, die in /var/tmp/file.txt von einem Skript (auf der Solaris-Maschine) erstellt wurde. Die folgende Liste hat 4 Felder

Bitte geben Sie an, wie die Liste entsprechend dem folgenden ZEITSTEMPEL sortiert werden soll (mit dem Sortierbefehl oder einem anderen Solaris-Befehl wie awk oder sed …)

Beispielsweise sollten Datum und Uhrzeit 15-10-2009 08:29:18 vor 15-10-2009 08:29:10 liegen ... usw.

Beispiel für file.txt (unsortierte Datei)

  PHONE_NUMBER         TIMESTAMP                   ID  TYPE
  -------------------- -------------------        ---- -------------- 
  972544111222         15-10-2009 08:29:18         20  sharp_gx10
  33633333333          24-09-2009 16:17:45         20  other_mm_phone
  841990000043         08-10-2009 09:04:38         60  other_mm_phone
  972541230001         08-10-2009 14:23:48         20  other_mm_phone

Antwort1

Wie ich in einem Kommentar sagte, lässt das Zeitstempelformat meinen Ansatz verworren erscheinen, aber es handelt sich größtenteils um eine mechanische Wiederholung.

awk 'NR>2 {print $1"-"$2"-"$3"-"$4"-"$5}' file.txt |\
awk -F'-' '{print $4"-"$3"-"$2"-"$5"-"$1"-"$6"-"$7}' |\
sort |\
awk -F'-' '{print $5"\t"$1"-"$2"-"$3" "$4"\t"$6"\t"$7}'
  1. Überspringen Sie die ersten beiden Zeilen (nur eine Überschrift) und wandeln Sie die restlichen Zeilen so um, dass sie ein einzelnes Trennzeichen verwenden (in diesem Fall einen Bindestrich; stellen Sie sicher, dass dieser nicht im letzten Feld erscheinen darf) (ursprünglich wechselt er aufgrund des Datumsformats zwischen Leerzeichen und Bindestrich).
  2. Trennen Sie die Felder mit einem Bindestrich und verschieben Sie das Datum an den Anfang der Zeile (zur einfacheren Verwendung mit sort) und drucken Sie es in absteigender Reihenfolge.
  3. sortieren und
  4. Drucken Sie die Informationen in einem ähnlichen Format wie die Eingabe aus (tauschen Sie $1und aus, $3um das alte Datumsformat zu erhalten).

Fügen Sie die Kopfzeilen anschließend wieder hinzu, falls gewünscht.


BEARBEITEN: Ich habe gesehen, dass Sie eine umgekehrte Sortierung wünschen. Ändern Sie einfach sortin sort -r.

verwandte Informationen