Regarder les journaux de bas en haut

35

Existe-t-il une commande linux ou un moyen de consulter les journaux de bas en haut plutôt que de haut en bas. Je suis au courant tail -n <number of lines>, mais y a-t-il quelque chose que je peux réellement faire défiler et aller de bas en haut?

c0mrade
la source

Réponses:

32

Certains systèmes ont tac, ce qui est un nom fantaisiste en arrière cat. Sans cela, vous pouvez toujours faire quelque chose comme

awk '{print NR ":" $0}' $file | sort -t: -k 1nr,1 | sed 's/^[0-9][0-9]*://'
geekosaur
la source
8
+1 pour tac, ne savait pas que celui-là :)
Johan
cat -nest comme awk '{print NR,$0}', donc légèrement plus léger.
Glenn Jackman
1
Je supposais que les systèmes sans tacmanquent aussi parfois la version dérivé de BSD de cat(USG-aromatisée catn'a pas eu -v, -netc. Je pense que quelque chose a déclenché mon « vieux **** ».)
geekosaur
44

Je pense que less +Gc’est ce que vous recherchez: le fichier sera chargé à la fin et vous pourrez utiliser la flèche vers le haut (ou k) pour revenir en arrière. Dans l’afficheur, gvous amène au début du fichier et Gvous ramène à la fin. Et Ffera défiler jusqu'à la fin et essayez de continuer à lire, comme tail -f.

mattdm
la source
n1 +1 :) Si vous êtes si gentil: Pouvez-vous expliquer comment rechercher le fichier de bas en haut lorsque vous utilisez moins avec l'indicateur + G?
Oleg Belousov
2
@ OlegTikhonov Bien sûr. ?est utilisé pour rechercher en arrière dans le fichier.
Mattdm
5

La taccommande est comme un "chat" inversé, si c'est ce que vous recherchez.

Si vous voulez juste voir un fichier en commençant par le bas, pourquoi n'utilisez-vous pas un éditeur ou "moins"?

Glenn Jackman
la source
1
Les problèmes que je vois avec l’utilisation des éditeurs sont les paginateurs: a) tous les éditeurs ne se comportent pas correctement pour les déconnexions réseau, ce qui signifie que l’éditeur reste présent même lorsque le shell envoie SIGHUP; b) de nombreux éditeurs touchent le répertoire (en créant un fichier swap / temp), ce qui est un inconvénient si vous souhaitez conserver la stabilité de mtime du répertoire.
Arcege
2

Vous pouvez exécuter less, puis utiliser M-> (c'est la clé méta, généralement alt, et le '>' en même temps) pour aller au bas du fichier. lessprend en charge le défilement.

Carlos Rendon
la source
1
La fonction «aller à la dernière ligne» est aussi généralement liée >(sans méta ni ESC) et G.
Chris Johnsen
@ Chris, je n'avais pas réalisé que Meta n'était pas nécessaire en moins. Mais c’est que vous utiliseriez Emacs.
Carlos Rendon
0

J'utilise ce script pour lire un fichier de bas en haut


#!/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

si sample.filecontient

 1
 2
 3

le résultat elpmas.filesera

 3
 2
 1
Jet
la source
-1

La canalisation dans tac fonctionne également, par exemple:

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

Soluction: combiner tacavecless

tac $@ | less

Installer

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

Usage

tacless /var/log/auth.log
nsantana
la source