Nhìn vào nhật ký từ dưới lên


35

Có một lệnh linux hoặc một số cách để xem các bản ghi từ dưới lên chứ không phải từ trên xuống dưới. Tôi biết tail -n <number of lines>, nhưng có một cái gì đó mà tôi thực sự có thể cuộn và đi từ dưới lên?

Câu trả lời:


32

Một số hệ thống có tac, được đặt tên lạc hậu cat. Không có điều đó, bạn vẫn có thể làm một cái gì đó như

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

8
+1 cho tac, không biết về cái đó :)
Johan

cat -nlà như awk '{print NR,$0}'vậy, vì vậy nhẹ hơn một chút.
glenn jackman

1
Tôi đã giả định rằng hệ thống mà không cần tacsức mạnh cũng thiếu phiên bản BSD có nguồn gốc từ cat(USG-hương vị catkhông có -v, -n, vv Tôi nghĩ rằng một cái gì đó kích hoạt của tôi "cũ ****".)
geekosaur

44

Tôi nghĩ less +Glà những gì bạn đang tìm kiếm - cuối cùng nó sẽ tải lên tệp và bạn có thể sử dụng mũi tên lên (hoặc k) để cuộn lại. Trong trình xem, gsẽ đưa bạn đến đầu tệp và Gsẽ đưa bạn trở lại đến cuối. Và Fsẽ cuộn đến cuối và cố gắng tiếp tục đọc, thích tail -f.


n1 +1 :) Nếu bạn thật tử tế: Bạn có thể giải thích cách tìm kiếm tệp từ dưới lên khi sử dụng ít hơn với cờ + G không?
Oleg Belousov

2
@OlegTikhonov Chắc chắn. ?được sử dụng để tìm kiếm ngược trong tập tin.
mattdm

5

Các taclệnh giống như một "con mèo" ngược lại, nếu đó là những gì bạn đang sau.

Nếu bạn chỉ muốn xem một tập tin bằng cách bắt đầu ở phía dưới, tại sao bạn không sử dụng trình chỉnh sửa hoặc "ít hơn"?


1
Hai vấn đề tôi thấy khi sử dụng trình soạn thảo là trình phân tích: a) không phải tất cả các trình soạn thảo đều hành xử đúng với việc ngắt kết nối mạng, nghĩa là trình soạn thảo vẫn ở xung quanh ngay cả khi trình bao gửi SIGHUP; b) nhiều trình soạn thảo chạm vào thư mục (bằng cách tạo tệp hoán đổi / temp), điều này là bất lợi nếu bạn muốn giữ cho thời gian của thư mục ổn định.
Arcege

2

Bạn có thể chạy lessvà sau đó sử dụng M-> (đó là khóa meta, thường là alt và '>' cùng lúc) để đi đến cuối tệp. lesshỗ trợ cuộn.


1
Các chức năng đi đến dòng cuối cùng cũng thường bị ràng buộc với >(không có Meta hoặc ESC) và G.
Chris Johnsen

@Chris, tôi không nhận ra Meta không cần thiết. Nhưng đó là bạn sẽ sử dụng trong Emacs.
Carlos Rendon


0

Tôi sử dụng tập lệnh này để đọc một tập tin từ dưới lên


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

nếu sample.filechứa

 1
 2
 3

kết quả elpmas.filesẽ là

 3
 2
 1

-1

Đường ống vào tac cũng hoạt động, ví dụ:

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

-1

Giải quyết: Kết hợp tacvớiless

tac $@ | less

cài đặt, dựng lên

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

Sử dụng

tacless /var/log/auth.log
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.