Глядя на бревна снизу вверх


35

Есть ли команда linux или какой-то способ посмотреть логи снизу вверх, а не сверху вниз. Я знаю tail -n <number of lines>, но есть ли что-то, что я могу прокрутить и перейти снизу вверх?

Ответы:


32

У некоторых систем есть tac, что причудливо названо задом наперед cat. Без этого вы все еще можете сделать что-то вроде

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

8
+1 за tac, не знал об этом :)
Johan

cat -nэто как awk '{print NR,$0}', так немного более легкий.
Гленн Джекман

1
Я предполагал , что системы без tacсил и не хватают BSD происхождения версии cat(USG приправленной catне были -v, -nи т.д. Я думаю , что что - то срабатывает мой «старый ****».)
geekosaur

44

Я думаю, less +Gэто то, что вы ищете - он загрузит файл в конце, и вы можете использовать стрелку вверх (или k) для прокрутки назад. В средстве просмотра gвы попадете в начало файла и Gвернетесь к концу. И Fпрокручиваем до конца и пытаемся продолжать читать, вроде бы tail -f.


n1 +1 :) Если вы будете так любезны: вы можете объяснить, как искать файл снизу вверх при использовании less с флагом + G?
Олег Белоусов

2
@ OlegTikhonov Конечно. ?используется для поиска назад в файле.
Матдм

5

Эта tacкоманда похожа на обратную «кошку», если вы ищете то, что вам нужно.

Если вы просто хотите просмотреть файл, начиная с нижней части, почему бы вам не использовать редактор или «меньше»?


1
Две проблемы, с которыми я сталкиваюсь при использовании редакторов, заключаются в разбивке на страницы: а) не все редакторы ведут себя должным образом при отключении от сети, что означает, что редактор остается без изменений, даже когда оболочка отправляет сигнал SIGHUP; б) многие редакторы касаются каталога (путем создания файла подкачки / временного файла), что невыгодно, если вы хотите сохранить mtime каталога стабильным.
Arcege

2

Вы можете запустить lessи затем использовать M-> (это мета-ключ, обычно alt, и «>» одновременно), чтобы перейти к нижней части файла. lessподдерживает прокрутку.


1
Функция «перейти к последней строке» также обычно связана с >(без Meta или ESC) и G.
Крис Джонсен

@ Крис, я не понимал, что Мета не требуется меньше. Но это то, что вы бы использовали в Emacs.
Карлос Рендон


0

Я использую этот скрипт для чтения файла снизу вверх


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

если sample.fileсодержит

 1
 2
 3

результат elpmas.fileбудет

 3
 2
 1

-1

Трубопровод в TAC также работает, например:

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

-1

Раствор: в сочетании tacсless

tac $@ | less

устанавливать

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

использование

tacless /var/log/auth.log
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.