Дивлячись на колоди знизу вгору


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, не знав про це :)
Йохан

cat -nсхоже awk '{print NR,$0}', так трохи легше.
glenn jackman

1
Я припускав , що системи без tacсил і НЕ хапають BSD походження версії cat(USG приправленою catбули -v, -nі т.д. Я думаю , що що - то спрацьовує мій «старий ****».)
geekosaur

44

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


n1 +1 :) Якщо ви будете такими ласкавими: чи можете ви пояснити, як шукати файл знизу вгору, використовуючи менше із прапором + G?
Олег Білоусов

2
@OlegTikhonov Звичайно. ?використовується для пошуку назад у файлі.
mattdm

5

tacКоманда подібна зворотного «кішки», якщо це те, що ви після цього .

Якщо ви просто хочете переглянути файл, починаючи внизу, чому б вам не скористатися редактором або "менше"?


1
Дві проблеми, які я бачу з використанням редакторів, - це пагинатори: а) не всі редактори поводяться належним чином до відключення мережі, тобто редактор залишається навколо навіть тоді, коли оболонка надсилає SIGHUP; б) багато редакторів доторкаються до каталогу (створюючи файл swap / temp), що є невигідним, якщо ви хочете зберегти mtime для каталогу стабільним.
Арседж

2

Ви можете запустити lessта використовувати M-> (це мета-ключ, як правило, alt та одночасно '>'), щоб перейти до нижньої частини файлу. lessпідтримує прокрутку.


1
Функція "перейти до останнього рядка" також зазвичай пов'язана з >(без мета чи ESC) та G.
Кріс Джонсен

@Chris, я не усвідомлював, що мета не потрібна менше. Але саме це ви б використали в 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з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.