Je cherche l'équivalent de la commande 'tail' d'Unix qui me permettra de regarder la sortie d'un fichier journal pendant qu'il est écrit.
Je cherche l'équivalent de la commande 'tail' d'Unix qui me permettra de regarder la sortie d'un fichier journal pendant qu'il est écrit.
Réponses:
Je suggère d'installer quelque chose comme GNU Utilities for Win32 . Il a la plupart des favoris, y compris la queue.
tail
sur un fichier de 2 Go et ça s'est étouffé. more
a bien fonctionné (au moins l'affichage du début du fichier).
head
mais pas tail
... Des idées?
tail
:)
Si vous utilisez PowerShell, cela fonctionne:
Get-Content filenamehere -Wait -Tail 30
Publier le commentaire de Stefan d'en bas, pour que les gens ne le manquent pas
PowerShell 3 introduit un paramètre -Tail pour inclure uniquement les dernières x lignes
tail
peut être utile) (2) il n'est pas aussi dynamique que je le souhaiterais (peut-être en raison de changements de système d'exploitation / système de fichiers entre ma configuration et d'autres affiches ?). Autrement dit, j'ai déterminé que le shell faisant Get-Content
parfois ne se met pas à jour jusqu'à ce que j'exécute dir
dans un autre shell.
Get-Content -Tail 100 -Wait .\logfile.log
?
J'ai toujours utilisé Baretail pour suivre dans Windows. C'est gratuit et plutôt sympa.
Edit: pour une meilleure description de Baretail voir cette question
Toute personne intéressée par une queue DOS CMD utilisant des commandes batch (voir ci-dessous).
Ce n'est pas préfet, et les lignes se répètent parfois.
Utilisation: tail.bat -d tail.bat -f -f
@echo off
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
rem tail.bat -d <lines> <file>
rem tail.bat -f <file>
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
ping 127.0.0.1 -n 2 > nul
avant goto followloop
. il envoie deux pings et attend 1 seconde entre les deux. donc ça laisserait le cpu vivre!: D
timeout /t 2
?
Il existe un certain nombre d'options, mais toutes ont des défauts avec des fonctionnalités plus avancées.
GnuWin32 tail est buggé ( α β γ ) - des choses comme -f ne fonctionnent tout simplement pas.
La queue UnxUtils semble meilleure (-f fonctionne, mais --pid ne semble pas, -n mais pas --lines = n échoue avec -f), mais semble être un projet mort.
Cygwin est une grosse bouillie moche, pourrait peut-être simplement utiliser le package DLL et coreutils - mais a toujours des problèmes comme --pid ne fonctionne pas avec les processus Win32 natifs.
J'ai utilisé Tail For Windows . Certainement pas aussi élégant que d'utiliser
queuemais ensuite, vous utilisez Windows. ;)
Je n'ai vu Log Expert nulle part parmi les réponses ici.
Il est personnalisable et est assez bon pour parcourir les fichiers journaux. Jusqu'à présent, c'est le meilleur visualiseur de journaux graphiques Windows pour moi.
Malheureusement, ce logiciel n'est plus disponible. Vous pouvez en lire plus sur archive.org .
Si vous ne voulez rien installer du tout, vous pouvez "créer votre propre" fichier batch qui fait le travail à partir des commandes Windows standard. Voici quelques conseils sur la façon de procéder.
1) À l'aide de find / c / v "" yourinput.file , obtenez le nombre de lignes dans votre fichier d'entrée. La sortie est quelque chose comme:
---------- T.TXT: 15
2) En utilisant for / f , analysez cette sortie pour obtenir le nombre 15.
3) À l'aide de set / a , calculez le nombre de lignes de tête qui doivent être sautées
4) En utilisant for / f "skip = n" sautez les lignes de tête et faites écho / traitez les lignes de queue.
Si je trouve le temps, je vais construire un tel fichier batch et le poster ici.
tail.bat
REM tail.bat
REM
REM Usage: tail.bat <file> <number-of-lines>
REM
REM Examples: tail.bat myfile.txt 10
REM tail.bat "C:\My File\With\Spaces.txt" 10
@ECHO OFF
for /f "tokens=2-3 delims=:" %%f in ('find /c /v "" %1') do (
for %%F in (%%f %%g) do set nbLines=%%F )
set /a nbSkippedLines=%nbLines%-%2
for /f "usebackq skip=%nbSkippedLines% delims=" %%d in (%1) do echo %%d
Essayez les services Windows pour UNIX . Fournit coquilles, awk, sed, etc. ainsi que queue.
Mise à jour -: Malheureusement, à partir de 2019, ce système n'est plus disponible sur le Centre de téléchargement Microsoft.
Je préfère TailMe en raison de la possibilité de regarder plusieurs fichiers journaux simultanément dans une seule fenêtre: http://www.dschensky.de/Software/Staff/tailme_en.htm
DOS n'a pas de commande tail; vous pouvez télécharger un binaire Windows pour GNU tail et d'autres outils GNU ici .
Une autre option serait d'installer MSYS (qui est plus léger que Cygwin).
Je viens d'écrire ce petit script batch. Il n'est pas aussi sophistiqué que la "queue" d'Unix, mais j'espère que quelqu'un pourra y ajouter des améliorations, comme limiter la sortie aux 10 dernières lignes du fichier, etc. Si vous améliorez ce script, veuillez l'envoyer à moi au vol ~ [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 /D Y /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
echo.
avec un point de fin sur le mot (et non comme argument séparé), elle imprimera une seule nouvelle ligne.
La tail
commande et bien d'autres sont disponibles dans le package Outils du Kit de ressources Windows .
Si vous souhaitez utiliser les ports Win32 de certains utilitaires Unix (plutôt que d'installer Cygwin), je recommande les utilitaires GNU pour Win32 .
Plus léger que Cygwin et plus portable.
Installez MKS Toolkit ... pour pouvoir exécuter toutes les commandes Unix sous Windows.
La commande est:
tail -f <file-name>
Dans Far Manager , appuyez F3sur un fichier pour accéder à la visionneuse standard, puis sur la Endtouche pour naviguer jusqu'à la fin du fichier.
Si le fichier est mis à jour, Far Manager le fera défiler automatiquement.
J'utilise Kiwi Log Viewer . C'est gratuit.
Les visualiseurs de journaux graphiques, bien qu'ils puissent être très utiles pour afficher les fichiers journaux, ne répondent pas au besoin d'un utilitaire de ligne de commande qui peut être incorporé dans des scripts (ou fichiers de commandes). Souvent, une commande aussi simple et polyvalente peut être utilisée dans le cadre d'une solution spécialisée pour un environnement particulier. Les méthodes graphiques ne se prêtent pas facilement à une telle utilisation.
Je pense avoir trouvé un utilitaire qui répond au besoin de la fonction queue dans les fichiers batch. Cela s'appelle "mtee" et c'est gratuit. Je l'ai incorporé dans un fichier batch sur lequel je travaille et il fait très bien le travail. Assurez-vous simplement de mettre l'exécutable dans un répertoire dans l'instruction PATH, et c'est parti.
Voici le lien: