LINUX.ORG.RU
ФорумAdmin

Просмотр изменяющегося файла аналогичный реализации в Far возможен?


0

0

В Far'е есть такая возможность - когда просматриваешь файл по F3 и в этот файл происходит запись (например, ведётся лог), то если ты стоишь в конце файла - изменения в файле сразу видны, если же встать где-то повыше, то окно просмотра сдвигаться в конец файла само не будет.

Очень удобно данную функцию использовать при отладке.
Но сейчас возникла необходимость иметь тот же функционал под Unix-системой, причём, желательно обойтись стандартными nix-утилитами (т.к. ОС - AIX и собрать там что-то ручками никто не даст).

Пока пользуюсь тупо 'tail -f foo.bar', но это, конечно же, совсем не то, чего хотелось бы.

Может быть, кто-нибудь подскажет более грамотный вариант?


а чем тебя не устраивает tail -f foo.bar и остановка потока по ctrl+s и восстановление по ctrl+q ?

maloi ★★★★★
()
Ответ на: комментарий от annoynymous

>После tail на всё остальное даже смотреть не хочется.

tail - это не вьювер со всеми вытекающими.

KRoN73 ★★★★★
()
Ответ на: комментарий от annoynymous

>По-моему, это в фаре «совсем не то». После tail на всё остальное даже смотреть не хочется.

Хорошо бы свои высказывания подкреплять хоть какими-то фактами и доводами.

По-моему, tail "совсем не то" о чем я говорю.

Объясняю: я встаю в конец файла (на строчку выше), а затем выполняю действие, которое приведет к появлению кучи записей в логе, но меня не перекинет сразу в конец этих записей, я останусь в том же месте - просто потом опущусь вниз и увижу первые строки в которых обычно и содержится причина ошибки, которую я ищу.

Как вы мне с помощью tail предлагаете искать потом то место в файле с которого начинается нужный мне лог? tail вообще для этого не предназначен, т.к. показывает конечное число строк. Как здесь заметили - это не вьюер.

bepcyc
() автор топика
Ответ на: комментарий от bepcyc

Хваленый мега vim поди что нибудь такое умеет.

sin_a ★★★★★
()
Ответ на: комментарий от sdio

>less file.txt <press F>

Пока наиболее интересный вариант - спасибо, такую функцию less раньше не знал.

Но опять же, как перечитать данные, оставаясь на том же месте? F перебрасывает в конец при поступлении новых данных.

bepcyc
() автор топика
Ответ на: комментарий от bepcyc

точнее, сразу перебрасывает в конец

bepcyc
() автор топика
Ответ на: комментарий от bepcyc

пользуйся метками (как в vim'e)

Установить метку на текущее местоположение:
нажать последовательно m <letter>   , где <letter> == [a-z]

Перейти на меченную строку:
нажать последовательно ' <letter>   , где <letter> ...

sdio ★★★★★
()

emacs

auto-revert-tail-mode

anonymous
()

google:inotify

Может программу для нас всех напишите - или вставите подобную вещь в MC/less

birdie ★★★★★
()
Ответ на: комментарий от sdio

>пользуйся метками (как в vim'e)

спасибо!

то, что я искал

работает как мне и требовалось

bepcyc
() автор топика
Ответ на: комментарий от birdie

> Может программу для нас всех напишите - или вставите подобную вещь в MC/less

В less данная функциональность имеется, читайте тему внимательнее!

annoynimous ★★★★★
()
Ответ на: комментарий от bepcyc

а в чем сложность? включаете tail -f file.log перед совершением тех самых действий жмете 5 раз Enter помечая таким образом начало нужного вам лога.

cobold ★★★★★
()
Ответ на: комментарий от sdio

>Почему же нет? Есть -- less

Это неинтегрированная утилита, вещь в себе. Как в less переключиться в шестнадцатеричный вид? Поменять кодировку файла? Перейти к другому файлу, а потом вернуться? Переключиться в редактор и обратно? И т.д. и т.п. :)

...

Нет, всё это безусловно можно "ручками" изобразить. Но удобство использования стремительно падает.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

> Это неинтегрированная утилита, вещь в себе.

Это UNIX-way.

> Как в less переключиться в шестнадцатеричный вид?

od -a <file> | less

> Поменять кодировку файла?

iconv -f UTF-8 -t KOI8-R | less

> Перейти к другому файлу, а потом вернуться?

В открытом less набрать: !less <file> - откроет другой файл. При выходе, вернётся к предыдущему.

> Переключиться в редактор и обратно?

Горячая клавиша "v"

Советую сначала почитать ман.

anonymous
()
Ответ на: комментарий от anonymous

>Это UNIX-way.

Рафинированный юниксвей - неэргономичен. Идеология должна быть для пользователей, а не пользователи - для идеологии.

>od -a <file> | less

Я сказал "переключиться", а не запустить по новой. Скажем, тебе важен текущий фрагмент, тебе нужно быстро оценить его в нескольких кодировках и в HEX-виде. У меня такая задача нередко встречалась. В FAR это делается одной кнопкой. У тебя - может растягиваться на десятки нажатий + повторные поиски фрагментов и т.п. А od умеет с потоком работать, чтобы добавления в файл в hex-виде в реальном виде отслеживать и т.п.? В общем, у тебя один геморрой выходит.

>iconv -f UTF-8 -t KOI8-R | less

Угу. И потом опять отлистывать на нужный фрагмент. Я уже не говорю про количество лишней работы с клавиатурой.

>В открытом less набрать: !less <file> - откроет другой файл.

И опять - клава, клава, клава.

>Советую сначала почитать ман.

Эргономика твоих методов не просто в жопе, она в глубокой беспросветной жопе :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Ты вместо изливания здесь желчи почитал бы man less.
Вот тебе ключевые места из мана:

  !command             Execute the shell command with $SHELL.
  v                    Edit the current file with $VISUAL or $EDITOR.
  |Xcommand            Pipe file between current pos & mark X to shell command.

Вот последняя команда позволяет кусок рассматриваемого файла отправить
через внешний фильтр, не выходя из less и не теряя текущей позиции в файле.


                        CHANGING FILES

  :e [file]            Examine a new file.
  ^X^V                 Same as :e.
  :n                *  Examine the (N-th) next file from the command line.
  :p                *  Examine the (N-th) previous file from the command line.
  :x                *  Examine the first (or N-th) file from the command line.
  :d                   Delete the current file from the command line list.
  =  ^G  :f            Print current file name.

sdio ★★★★★
()
Ответ на: комментарий от sdio

Если less все же не устраивает -- смотри most

Description: Pager program similar to more and less
 Most is a paging program that displays, one windowful at a time, the
 contents of a file on a terminal. A status line at the bottom of the
 screen displays the file name, the current line number and the percentage
 of the file so far displayed.
 .
 Unlike other paging programs, most is capable of displaying an
 arbitrary number of windows as long as they all fit on the screen, and
 different windows could be used to view the same file in different
 positions.
 .
 In addition to displaying ordinary text files, most can also display
 binary files as well as files with arbitrary ascii characters.

sdio ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.