Ich habe einige Unterordner (A, B, C, D ..) auf einem Remote-Server, der ungefähr 100.gz-Dateien enthält. Das Benennungsmuster für Dateien ist wie folgt: ND2_58_20151105173030_20151105173240_1234.log.gz Dabei ist das dritte und vierte Feld nach _ die Start- und Endzeit. Wenn nun die Start- / Endzeit 15 Minuten von der aktuellen Zeit entfernt ist, möchte ich diese Datei abrufen. Kann mir jemand vorschlagen, wie ich es mit Shell-Skript mache. Zum Abrufen von Daten verwende ich rsync.
Danke, Arn
awk
besser print $3,$4, $0
so , wenn Sie analysieren werden Sie den vollständigen Namen in der zweiten Spalte bereit haben. Sie brauchen $4
auch, wenn es vor langer Zeit begann und erst vor wenigen Minuten endete ...
basename
) in einer Variablen, zum Beispiel fname
mit a=${fname#*_*_}
Ihnen wählen 20151105173030_20151105173240_1234.log.gz
mit b=${a%_*_*}
Ihnen verkleinern 20151105173030
mit year=${b:0:4}
Sie haben 2015
und so weiter ... Natürlich können Sie mehr gemütliche Art und Weise ... finden Bash String - Manipulation