Como abro um arquivo de texto em um terminal com atualização automática instantânea toda vez que ele é alterado?
Eu olhei vim
com :set autoread
, mas requer alguma entrada elementar (como um pressionamento de tecla por dentro vim
) para acionar a atualização.
Quero que a atualização automática seja sem as mãos. Existe algum truque para fazer isso?
Estou usando o Crunchbang 11, mas estou bastante confortável com o terminal.
tail -f $file
.inotify
. Olhando para cima, é uma API que eu preciso acessar com programação C, que não estou inclinado a fazer tão cedo. Estou procurando uma solução de comando shell.inotify-tools
,. Eles usam um recurso embutido no Kernel chamado inotify. Sempre que um arquivo é acionado sobre um evento é enviado via inotify em que você pode atuar. Muitos prog. langs. como Python, Perl, etc. têm bibliotecas que envolvem a API Inotify. Veja a Wikipedia pg: en.wikipedia.org/wiki/InotifyRespostas:
Isso deve mostrar o arquivo uma vez por segundo:
fonte
watch -tpcn 1 pygmentize -g filename
watch -g
, ele não funciona como você esperaria .-g
mudança é realmente parapygmentize
. De qualquer forma, obrigado pelo aviso.watch -n 1 tail file
?Mostra as atualizações do syslog à medida que são adicionadas ao arquivo.
fonte
Eu usaria
watch
como a outra resposta sugere, mas apenas para mostrar como é possível abordar um problema aparentemente complicado usando os blocos de construção fornecidos por um shell como o Unix; um loop while pode ser uma maneira simples de executar seu loop.Exemplo
A tela limpa e, depois de um segundo, isso é exibido:
fonte
Conforme sugerido nos comentários, você também pode usar,
inotify
embora seja um exagero. De longe, o mais simples é usarwatch
. Aqui está uma maneira de fazer issoinotify
:Instale o
inotify-tools
pacoteUse
inotifywatch
para verificar se há alterações no seu arquivo. Execute-o em um loop ecat
o arquivo se uma alteração for detectada (é por isso que eugrep
para a stringtotal
):fonte
-q
(ou--quiet
) paragrep
silenciar a linha correspondente com "total".watch(1)
é uma ferramenta realmente útil. [1]Eu não recomendaria usar
cat
embora.Em vez disso, use
head
outail
para saber se você precisa ver o início ou o final do arquivo.fonte