Um equivalente no Windows do comando unix tail

Eu estou procurando o equivalente do comando unix ‘tail’ que me permitirá assistir a saída de um arquivo de log enquanto ele está sendo gravado.

Eu sugiro instalar algo como o GNU Utilities for Win32 . Tem mais favoritos, incluindo cauda.

Se você usa o PowerShell, isso funciona:

 Get-Content filenamehere -Wait -Tail 30 

Postando o comentário de Stefan a partir de baixo, para que as pessoas não o percam

O PowerShell 3 apresenta um parâmetro -Tail para include apenas as últimas x linhas

Eu sempre usei o Baretail para o tailing no Windows. É grátis e muito legal.

Edit: para uma melhor descrição de Baretail veja esta pergunta

Você pode obter cauda como parte do Cygwin .

Há um grande número de opções, no entanto, todos eles têm falhas com resources mais avançados.

  • O Windows Server 2003 Tools fornece uma cauda simples que pode ser baixada com o Resource Kit Tools . É muito limitado em muitos aspectos (bloqueios seguidos arquivo, carece de muitas opções como –pid), no entanto, fará para a tarefa básica de rastreamento de um arquivo.

  • GnuWin32 cauda é buggy ( α β γ ) – coisas como -f simplesmente não funcionam.

  • A cauda do UnxUtils parece melhor (-f funciona, mas –pid parece não funcionar, -n mas não –lines = n falha com -f), mas parece ser um projeto inoperante.

  • Cygwin é um grande e feio mush, poderia talvez apenas usar o pacote DLL e coreutils – mas ainda tem problemas como –pid não funciona com processos win32 nativos.

Qualquer pessoa interessada em uma cauda do DOS CMD usando comandos em lote (veja abaixo) Não é prefeito e as linhas repetem-se em algum momento.

uso: tail.bat -d tail.bat -f -f

 @echo off SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION rem tail.bat -d   rem tail.bat -f  rem ****** MAIN ****** IF "%1"=="-d" GOTO displayfile IF "%1"=="-f" GOTO followfile GOTO end rem ************ rem Show Last n lines of file rem ************ :displayfile SET skiplines=%2 SET sourcefile=%3 rem *** Get the current line count of file *** FOR /F "usebackq tokens=3,3 delims= " %%l IN (`find /c /v "" %sourcefile%`) DO (call SET find_lc=%%l) rem *** Calculate the lines to skip SET /A skiplines=%find_lc%-!skiplines! rem *** Display to screen line needed more +%skiplines% %sourcefile% GOTO end rem ************ rem Show Last n lines of file & follow output rem ************ :followfile SET skiplines=0 SET findend_lc=0 SET sourcefile=%2 :followloop rem *** Get the current line count of file *** FOR /F "usebackq tokens=3,3 delims= " %%l IN (`find /c /v "" %sourcefile%`) DO (call SET find_lc=%%l) FOR /F "usebackq tokens=3,3 delims= " %%l IN (`find /c /v "" %sourcefile%`) DO (call SET findend_lc=%%l) rem *** Calculate the lines to skip SET /A skiplines=%findend_lc%-%find_lc% SET /A skiplines=%find_lc%-%skiplines% rem *** Display to screen line when file updated more +%skiplines% %sourcefile% goto followloop :end 

Eu usei o Tail For Windows . Certamente não é tão elegante quanto usar

  rabo 

mas você está usando o Windows. 😉

Eu não vi Log Expert em qualquer lugar entre as respostas aqui:

http://www.log-expert.de/

É personalizável e muito bom para percorrer arquivos de log, até agora é o melhor visualizador de log gráfico do Windows para mim.

Se você não deseja instalar nada, você pode “construir seu próprio arquivo em lote” que faz o trabalho a partir de comandos padrão do Windows. Aqui estão algumas dicas sobre como fazer isso.

1) Usando find / c / v “” yourinput.file , obtenha o número de linhas em seu arquivo de input. A saída é algo como:

 ---------- T.TXT: 15 

2) Usando para / f , analise esta saída para obter o número 15.

3) Usando set / a , calcule o número de linhas de header que precisam ser ignoradas

4) Usando para / f “skip = n” pule as linhas principais e eco / processe as linhas finais.

Se eu encontrar tempo, vou construir um arquivo em lote e publicá-lo aqui.

Com o Windows PowerShell, você pode usar:

 Get-Content  -Wait 

Experimente o Windows Services for UNIX . Fornece shells, awk, sed, etc., bem como cauda.

Eu usei o Mtail recentemente e parece funcionar bem. Este é o tipo de GUI como baretail mencionado acima. insira a descrição da imagem aqui

Baixe o comando tail, parte do Windows Server 2003 Resource Kit Tools da própria Microsoft .

Eu prefiro TailMe por causa da possibilidade de assistir vários arquivos de log simultaneamente em uma janela: http://www.dschensky.de/Software/Staff/tailme_en.htm

O DOS não possui comando de cauda; você pode baixar um binário do Windows para a cauda GNU e outras ferramentas GNU aqui .

Outra opção seria instalar o MSYS (que é mais leve do que o Cygwin).

O comando tail e muitos outros estão disponíveis no pacote Windows Resource Kit Tools em http://www.microsoft.com/en-us/download/details.aspx?id=17657

Acabei de escrever este pequeno script em lote. Não é tão sofisticado quanto o unix “tail”, mas esperamos que alguém possa adicioná-lo para melhorá-lo, como limitar a saída para as últimas 10 linhas do arquivo, etc. Se você melhorar este script, envie-o para eu em roubar ~ [at] ~ gmail.com.

 @echo off :: This is a batch script I wrote to mimic the 'tail' UNIX command. :: It is far from perfect, but I am posting it in the hopes that it will :: be improved by other people. This was designed to work on Windows 7. :: I have not tested it on any other versions of Windows if "%1" == "" goto noarg if "%1" == "/?" goto help if "%1" == "-?" goto help if NOT EXIST %1 goto notfound set taildelay=%2 if "%taildelay%"=="" set taildelay=1 :loop cls type %1 :: I use the CHOICE command to create a delay in batch. CHOICE /C YN /DY /N /T %taildelay% goto loop :: Error handlers :noarg echo No arguments given. Try /? for help. goto die :notfound echo The file '%1' could not be found. goto die :: Help text :help echo TAIL filename [seconds] :: I use the call more pipe as a way to insert blank lines since echo. doesnt :: seem to work on Windows 7 call | more echo Description: echo This is a Windows version of the UNIX 'tail' command. echo Written completely from scratch by Andrey G. call | more echo Parameters: echo filename The name of the file to display call | more echo [seconds] The number of seconds to delay before reloading the echo file and displaying it again. Default is set to 1 call | more echo ú /? Displays this help message call | more echo NOTE: echo To exit while TAIL is running, press CTRL+C. call | more echo Example: echo TAIL foo 5 call | more echo Will display the contents of the file 'foo', echo refreshing every 5 seconds. call | more :: This is the end :die 

Se você quiser usar as portas Win32 de alguns utilitários Unix (ao invés de instalar o Cygwin), eu recomendo os utilitários GNU para Win32 .

Mais leve que o Cygwin e mais portátil.

O type do dos funciona como o cat do * nux, mas como o gato, ele despeja o arquivo inteiro, então não é realmente um verdadeiro truque, mas ele estará disponível em um pinch sem baixar / instalar um substituto de cauda verdadeiro.

instale o kit de ferramentas MKS .. para que você possa executar todos os comandos unix nas janelas.

tail -f é o comando.

Estou usando o Kiwi Log Viewer, é grátis.

No Far Manager, pressione F3 em um arquivo para entrar no visualizador padrão e, em seguida, em End key para navegar até o final do arquivo. Se o arquivo for atualizado – Far irá rolar automaticamente.

você pode tentar o WinTail também http://www.baremetalsoft.com/wintail/

Os visualizadores de log charts, embora possam ser muito bons para exibir arquivos de log, não atendem à necessidade de um utilitário de linha de comando que possa ser incorporado a scripts (ou arquivos em lotes). Geralmente, um comando tão simples e de uso geral pode ser usado como parte de uma solução especializada para um ambiente específico. Métodos charts não se prestam prontamente a tal uso.

Acho que encontrei um utilitário que atende à necessidade da function final em arquivos em lote. É chamado de “mtee” e é grátis. Eu incorporei em um arquivo de lote que estou trabalhando e faz o trabalho muito bem. Apenas certifique-se de colocar o arquivo executável em um diretório na instrução PATH e, em seguida, vá embora.

Aqui está o link:

mtee