Как открыть текстовый файл в терминале с мгновенным автоматическим обновлением при каждом его изменении?
Я смотрел vim
с помощью :set autoread
, но он требует некоторого элементарного ввода (например, нажатие клавиши внутри vim
), чтобы вызвать обновление.
Я хочу, чтобы автоматическое обновление происходило без помощи рук. Есть ли какой-нибудь хак для этого?
Я использую Crunchbang 11, но мне вполне комфортно с терминалом.
tail -f $file
.inotify
. В поисках, это API, к которому мне нужно получить доступ при программировании на C, что я не склонен делать в ближайшее время. Я ищу решение командной оболочки.inotify-tools
. Они используют встроенную в ядро функцию, называемую inotify. Каждый раз, когда файл обрабатывается по событию, отправляется через inotify, на котором вы можете действовать. Много прог. Langs. такие как Python, Perl и т. д. имеют библиотеки, которые обертывают API Inotify. Смотрите википедию pg: en.wikipedia.org/wiki/InotifyОтветы:
Это должно показать вам файл один раз в секунду:
источник
watch -tpcn 1 pygmentize -g filename
watch -g
, это не работает так, как вы ожидаете .-g
переключатель на самом деле дляpygmentize
. В любом случае, спасибо за предупреждение.watch -n 1 tail file
?Показывает обновления системного журнала по мере их добавления в файл.
источник
Я хотел бы использовать,
watch
как предлагает другой ответ, но только для того, чтобы показать вам, как можно подойти к казалось бы сложной проблеме, используя строительные блоки, предоставляемые оболочкой, такой как Unix; цикл while может быть простым способом выполнения вашего цикла.пример
Экран очищается, а затем через секунду это отображается:
источник
Как предлагается в комментариях, вы также можете использовать,
inotify
хотя это излишне. Безусловно, самым простым является использованиеwatch
. Вот один из способов сделать этоinotify
:Установить
inotify-tools
пакетИспользуйте,
inotifywatch
чтобы проверить ваш файл на наличие изменений. Запустите его в цикле иcat
в файле, если обнаружены изменения (вот почему яgrep
для строкиtotal
):источник
-q
(или--quiet
) кgrep
заставит заглушить совпавшую строку «итого».watch(1)
это действительно полезный инструмент. [1]Я не рекомендовал бы использовать
cat
все же.Вместо этого используйте
head
илиtail
для того, нужно ли вам видеть начало или конец файла.источник