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?

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

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.


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


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.


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

-1

Perpipaan ke tac juga berfungsi, misalnya:

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

-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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.