it-swarm.com.de

Rufen Sie die letzten 100 Zeilenprotokolle ab

Ich muss die letzten 100 Protokollzeilen aus der Protokolldatei abrufen. Ich habe den sed Befehl ausprobiert

sed -n -e '100,$p' logfilename

Bitte lassen Sie mich wissen, wie ich diesen Befehl ändern kann, um speziell die letzten 100 Zeilen abzurufen.

113
Surabhi

Sie können den Befehl tail wie folgt verwenden:

tail -100 <log file>   > newLogfile

Jetzt sind die letzten 100 Zeilen in newLogfile vorhanden.

EDIT:

Neuere Versionen von tail, wie von twalberg use command erwähnt:

tail -n 100 <log file>   > newLogfile
223
Steephen

Schauen Sie sich das sed-Skript an, das die 100 letzten Zeilen ausgibt, die Sie in der Dokumentation zu sed finden ( https://www.gnu.org/software/sed/manual/sed.html#tail ):

$ cat sed.cmd
1! {; H; g; }
1,100 !s/[^\n]*\n//
$p

$ sed -nf sed.cmd logfilename

Für mich ist es so viel schwieriger als dein Drehbuch

tail -n 100 logfilename

ist viel viel einfacher. Und es ist sehr effizient, es wird nicht alle Dateien lesen, wenn es nicht notwendig ist. Siehe meine Antwort mit Strace-Bericht für tail ./huge-file: https://unix.stackexchange.com/questions/102905/does-tail-read-the-whole-file/102910#10291

10
Sergei Kurenkov

"tail" ist ein Befehl zum Anzeigen des letzten Teils einer Datei. Die Verwendung geeigneter verfügbarer Schalter hilft uns dabei, eine spezifischere Ausgabe zu erhalten. Der für mich am häufigsten verwendete Schalter ist -n und -f

SYNOPSIS

schwanz [-F | -f | -r] [-q] [-b Nummer | -c Nummer | -n Nummer] [Datei ...]

Hier

-n Nummer: Die Position ist Zahlenzeilen.

-f: Die Option -f bewirkt, dass tail nicht stoppt, wenn das Dateiende erreicht ist, sondern wartet, bis zusätzliche Daten an die Eingabe angehängt werden. Die Option -f wird ignoriert, wenn die Standardeingabe eine Pipe ist, nicht jedoch, wenn es sich um ein FIFO handelt.

Letzte 100 Zeilen Protokolle abrufen

To get last static 100 lines  
     tail -n 100 <file path>

To get real time last 100 lines
     tail -f -n 100 <file path>
7
Amitesh

Ich weiß, das ist sehr alt, aber für wen auch immer es hilft.

less +F my_log_file.log

das ist einfach, mit weniger kannst du viel mächtigere Dinge tun. Sobald Sie Protokolle sehen, können Sie suchen, zur Zeilennummer gehen, nach Mustern suchen und vieles mehr. Bei großen Dateien ist dies schneller.

es ist wie vim für logs [ganz meine meinung]

originaldokumentation von less: https://linux.die.net/man/1/less

weniger Spickzettel: https://Gist.github.com/glnds/8862214

2
mdsadiq
len=`cat filename | wc -l`
len=$(( $len + 1 ))
l=$(( $len - 99 ))
sed -n "${l},${len}p" filename

die erste Zeile nimmt die Länge (Gesamtzeilen) der Datei und danach +1 in den Gesamtzeilen. Danach müssen 100 Datensätze abgerufen werden

Ich hoffe, dies wird dir helfen.

1
Akshay Jangir