Melihat log dari bawah ke atas

35

Apakah ada perintah linux atau cara untuk melihat log dari bawah ke atas dan bukan dari atas ke bawah. Saya tahu tail -n <number of lines>, tetapi apakah ada sesuatu yang benar-benar dapat saya gulir dan naik dari bawah ke atas?

cmmrade
sumber

Jawaban:

32

Beberapa sistem memiliki tac, yang merupakan nama aneh yang disebut mundur cat. Tanpa itu, Anda masih bisa melakukan sesuatu seperti

awk '{print NR ":" $0}' $file | sort -t: -k 1nr,1 | sed 's/^[0-9][0-9]*://'
geekosaurus
sumber
8
+1 untuk tac, tidak tahu tentang yang itu :)
Johan
cat -nseperti awk '{print NR,$0}', jadi sedikit lebih ringan.
glenn jackman
1
Saya berasumsi bahwa sistem tanpa tackekuatan juga tidak versi BSD yang diturunkan dari cat(USG rasa cattidak -v, -n, dll saya pikir sesuatu yang dipicu saya "lama ****".)
geekosaur
44

Saya pikir less +Gapa yang Anda cari - itu akan memuat file di akhir, dan Anda dapat menggunakan panah atas (atau k) untuk menggulir kembali. Di dalam viewer, gakan membawa Anda ke atas file dan Gakan membawa Anda kembali ke akhir. Dan Fakan gulir ke akhir dan mencoba untuk terus membaca, seperti tail -f.

mattdm
sumber
n1 +1 :) Jika Anda akan sangat baik: Bisakah Anda menjelaskan cara mencari file dari bawah ke atas saat menggunakan lebih sedikit dengan tanda + G?
Oleg Belousov
2
@OlegTikhonov Tentu. ?digunakan untuk mencari mundur dalam file.
mattdm
5

The tacperintah seperti "kucing" terbalik, kalau itu apa yang Anda harapkan.

Jika Anda hanya ingin melihat file dengan mulai dari bawah, mengapa Anda tidak menggunakan editor atau "kurang"?

glenn jackman
sumber
1
Dua masalah yang saya lihat dengan menggunakan editor adalah paginators: a) tidak semua editor berperilaku baik terhadap terputusnya jaringan, yang berarti bahwa editor tetap ada walaupun shell mengirimkan SIGHUP; b) banyak editor menyentuh direktori (dengan membuat file swap / temp), yang tidak menguntungkan jika Anda ingin menjaga agar mtime direktori tetap stabil.
Arcege
2

Anda dapat menjalankan lessdan kemudian menggunakan M-> (itulah meta key, biasanya alt, dan '>' secara bersamaan) untuk menuju ke bagian bawah file. lessmendukung pengguliran.

Carlos Rendon
sumber
1
Fungsi "pergi ke baris terakhir" juga biasanya terikat >(tanpa Meta atau ESC) dan G.
Chris Johnsen
@ Chris, saya tidak menyadari Meta tidak perlu kurang. Tapi itulah yang akan Anda gunakan di Emacs.
Carlos Rendon
0

Saya menggunakan skrip ini untuk membaca file dari bawah ke atas


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

jika sample.filemengandung

 1
 2
 3

hasilnya elpmas.fileakan

 3
 2
 1
Jet
sumber
-1

Perpipaan ke tac juga berfungsi, misalnya:

tail -n 3 /var/log/dmesg | tac
marc
sumber
-1

Soluction: Kombinasikan tacdenganless

tac $@ | less

Memasang

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

Pemakaian

tacless /var/log/auth.log
nsantana
sumber