Patrząc na dzienniki od dołu do góry


35

Czy istnieje komenda linuxowa lub jakiś sposób patrzenia na logi od dołu do góry, a nie od góry do dołu. Wiem o tym tail -n <number of lines>, ale czy jest coś, co mogę przewinąć i przejść od podstaw do góry?

Odpowiedzi:


32

Niektóre systemy mają tac, co jest kapryśną nazwą wstecz cat. Bez tego nadal możesz zrobić coś takiego

awk '{print NR ":" $0}' $file | sort -t: -k 1nr,1 | sed 's/^[0-9][0-9]*://'

8
+1 za tac, nie wiedziałem o tym :)
Johan

cat -njest awk '{print NR,$0}'trochę bardziej lekki.
glenn jackman

1
Byłem przy założeniu, że systemy bez tacsił brakuje również w wersji BSD-pochodzi z cat(USG smaku catnie ma -v, -nitp Myślę, że coś spowodowało mój „stary ****”.)
geekosaur

44

Myślę, że less +Gwłaśnie tego szukasz - załaduje on plik na końcu i możesz użyć strzałki w górę (lub k), aby przewinąć do tyłu. W przeglądarce gprzejdziesz na początek pliku i Gzabierze Cię z powrotem do końca. I Fprzewinie do końca i spróbuje czytać dalej tail -f.


n1 +1 :) Jeśli będziesz taki miły: czy możesz wyjaśnić, jak przeszukiwać plik od dołu do góry, gdy używasz mniej z flagą + G?
Oleg Belousov

2
@OlegTikhonov Pewnie. ?służy do wyszukiwania wstecz w pliku.
mattdm

5

tacKomenda jest jak odwrotnej „kota”, jeśli to Ty jesteś po.

Jeśli chcesz tylko wyświetlić plik, zaczynając od dołu, dlaczego nie używasz edytora lub „mniej”?


1
Dwa problemy, które widzę podczas korzystania z edytorów, to paginatory: a) nie wszystkie edytory zachowują się prawidłowo w przypadku rozłączeń sieciowych, co oznacza, że ​​edytor pozostaje w pobliżu, nawet gdy powłoka wysyła SIGHUP; b) wielu redaktorów dotyka katalogu (tworząc plik wymiany / temp), co jest niekorzystne, jeśli chcesz utrzymać stabilność czasu mtime katalogu.
Arcege,

2

Możesz uruchomić, lessa następnie użyć M-> (to jest meta-klucz, zwykle alt i „>” w tym samym czasie), aby przejść do dolnej części pliku. lessobsługuje przewijanie.


1
Funkcja „przejdź do ostatniej linii” jest również zwykle związana >(bez Meta lub ESC) i G.
Chris Johnsen

@Chris, nie zdawałem sobie sprawy, że Meta nie jest wymagana w mniejszym stopniu. Ale to byś użył w Emacsie.
Carlos Rendon


0

Używam tego skryptu, aby odczytać plik od dołu do góry


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

jeśli sample.filezawiera

 1
 2
 3

wynik elpmas.filebędzie

 3
 2
 1

-1

Działa także pipowanie do tac, np .:

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

-1

Rozwiązanie: Połącz taczless

tac $@ | less

zainstalować

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

Stosowanie

tacless /var/log/auth.log
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.