Letzte Zeile aus neuester Datei lesen

Astrofreak

Lt. Junior Grade
Registriert
Apr. 2001
Beiträge
294
Hi,

wie kann ich aus der neuesten Datei in einem Ordner die letzte Zeile lesen?

aktuell nehme ich statisch die datei so auseinander damit mir nur ein eintrag zurückgegeben wird:


' tail -n3 /mnt/NoBackup/logs/log20101109_223941'

diese Datei ändert sich aber zB bei einem reboot, kommt selten vor, aber passiert auch mal...daher möchte ich oben genatten befehl nicht mit einer statischen datei ausführen, sondern der neuesten in dem ordner...

Wie mach ich das? Denke irgendwie mit bash, aber ich weiß net wie...
 
mit dem befehl würde er den befehl an alle dateien die mit log anfangen anwenden.
wenns eh immer nur die eine gibt: ok
andernfalls: ned das gelbe vom ei :)
 
@_ZeroQ_: das funktioniert schon wie es sollte. schau nochmal genau hin (hint: break) ;)
 
Astrofreak schrieb:
wie kann ich aus der neuesten Datei in einem Ordner die letzte Zeile lesen?
...
Wie mach ich das? Denke irgendwie mit bash
tail -1 "$(/bin/ls -t|head -1)"

Im aktuellen Verzeichnis, wenn keine "sehr komischen" Dateinamen dabei sind.
 
Zuletzt bearbeitet:
@Astrofreak: aja, my bad, sortiert natuerlich anders rum. Es liesse sich trotzdem noch in der art lösen, aber da ist mensch183's vorschlag einfacher.
 
Um "ls -t" oder was ähnliches, um die Dateien zeitlich zu sortieren und die letzte herauszufischen, wir man nicht herumkommen. Mal etwas länger:

#!/bin/bash
ORDNER=/mnt/NoBackup/logs
NEUE_DATEI=$(/bin/ls -t $ORDNER |head -1)
test -f "$ORDNER/$NEUE_DATEI" || exit -2
LETZTE_ZEILE=$(tail -1 "$ORDNER/$NEUE_DATEI")
echo $LETZTE_ZEILE

Evtl. noch eine bessere Fehlerbehandlung. Daraus wird er sich was basteln können.
 
Da die Dateinamen das Datum sowie Uhrzeit enthalten, ist's sortieren nicht so problematisch. Aus dem grund würde es wie gesagt auch mit meiner methode gehen, aber, eben, nicht wirklich hübsch:

neuste_datei=
for x in /mnt/NoBackup/logs/log*; do neuste_datei="$x"; done
tail -1 "$neuste_datei"
 

Ähnliche Themen

P
Antworten
0
Aufrufe
912
pcpanik
P
Zurück
Oben