Logs von unten nach oben betrachten

35

Gibt es einen Linux-Befehl oder eine Möglichkeit, Protokolle von unten nach oben und nicht von oben nach unten zu betrachten? Ich weiß über tail -n <number of lines>, aber gibt es etwas, das ich tatsächlich scrollen und von unten nach oben gehen kann?

c0mrade
quelle

Antworten:

32

Einige Systeme haben tac, was ein wunderlicher Rückwärtsname ist cat. Ohne das kann man sowas noch machen

awk '{print NR ":" $0}' $file | sort -t: -k 1nr,1 | sed 's/^[0-9][0-9]*://'
Geekosaurier
quelle
8
+1 für tac, wusste nicht, dass :)
Johan
cat -nist wie awk '{print NR,$0}', also etwas leichter.
Glenn Jackman
1
Ich war der Annahme , dass die Systeme ohne tacMacht fehlt auch die BSD-basierten Version von cat(USG-Geschmack cathatte nicht -v, -nusw. Ich glaube , etwas ausgelöst meine „alte ****“.)
geekosaur
44

Ich denke, es less +Gist das, wonach Sie suchen - es lädt die Datei am Ende und Sie können den Aufwärtspfeil (oder k) verwenden, um zurückzuscrollen. Bringt gSie innerhalb des Viewers an den Anfang der Datei und Gbringt Sie zurück zum Ende. Und Fwerde bis zum Ende scrollen und versuchen weiterzulesen, wie tail -f.

mattdm
quelle
n1 +1 :) Wenn Sie so freundlich sind: Können Sie erklären, wie Sie die Datei von unten nach oben durchsuchen, wenn Sie weniger mit dem + G-Flag verwenden?
Oleg Belousov
2
@OlegTikhonov Sicher. ?wird verwendet, um rückwärts in der Datei zu suchen.
Mattdm
5

Der tacBefehl ist wie eine umgekehrte "Katze", wenn Sie danach suchen.

Wenn Sie nur eine Datei anzeigen möchten, indem Sie unten beginnen, warum verwenden Sie keinen Editor oder "weniger"?

Glenn Jackman
quelle
1
Zwei Probleme, die ich bei der Verwendung von Editoren sehe, sind Paginatoren: a) Nicht alle Editoren verhalten sich ordnungsgemäß, wenn die Netzwerkverbindung getrennt wird, was bedeutet, dass der Editor auch dann in der Nähe bleibt, wenn die Shell SIGHUP sendet. b) Viele Editoren berühren das Verzeichnis (indem sie eine Swap / Temp-Datei erstellen), was nachteilig ist, wenn Sie die Zeit des Verzeichnisses stabil halten möchten.
Arcege
2

Sie können lessM-> ausführen und dann verwenden (das ist die Metataste, normalerweise alt, und das '>' gleichzeitig), um zum Ende der Datei zu gelangen. lessunterstützt das Scrollen.

Carlos Rendon
quelle
1
Die Funktion "Gehe zur letzten Zeile" ist normalerweise auch an >(ohne Meta oder ESC) und gebunden G.
Chris Johnsen
@ Chris, ich wusste nicht, dass Meta nicht in weniger benötigt wird. Aber genau das würdest du in Emacs verwenden.
Carlos Rendon
0

Ich benutze dieses Skript, um eine Datei von unten nach oben zu lesen


#!/bin/bash

echo -n elpmas.file # resulting file

ctr_line=0

while read line; do

   let ctr_line++

   tail -n $ctr_line | head -n 1 >> elpmas.file

done <sample.file

wenn es sample.fileenthält

 1
 2
 3

das Ergebnis elpmas.filewird sein

 3
 2
 1
Jet
quelle
-1

Das Einleiten in tac funktioniert auch, zB:

tail -n 3 /var/log/dmesg | tac
Marc
quelle
-1

Lösung: Kombinieren Sie tacmitless

tac $@ | less

Installieren

sudo bash -c 'echo "tac \$@ | less" > /usr/local/bin/tacless'
sudo chmod +x /usr/local/bin/tacless

Verwendung

tacless /var/log/auth.log
nsantana
quelle