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?

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]*://'

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.


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"?


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.


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

-1

Das Einleiten in tac funktioniert auch, zB:

tail -n 3 /var/log/dmesg | tac

-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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.