로그 파일이 기록되는 동안 출력을 볼 수있는 Unix 'tail'명령과 동등한 기능을 찾고 있습니다.
로그 파일이 기록되는 동안 출력을 볼 수있는 Unix 'tail'명령과 동등한 기능을 찾고 있습니다.
답변:
Win32 용 GNU 유틸리티 와 같은 것을 설치하는 것이 좋습니다 . 꼬리를 포함하여 가장 좋아하는 것들이 있습니다.
tail
2GB 파일에서 GNU를 사용하려고 시도했지만 질식했습니다. more
잘 작동했습니다 (적어도 파일의 시작 부분을 보았습니다).
head
없지만 tail
... 아이디어는?
tail
:)을
PowerShell을 사용하면 다음과 같이 작동합니다.
Get-Content filenamehere -Wait -Tail 30
아래에서 Stefan의 의견을 게시하므로 사람들은 놓치지 마세요.
PowerShell 3에는 마지막 x 줄만 포함하도록 -Tail 매개 변수가 도입되었습니다
tail
때문에 유용 할 수 있습니다) (2) 원하는대로 동적이지 않습니다 (설정과 다른 포스터 사이의 OS / 파일 시스템 변경으로 인한 것일 수 있음) ?). 즉, 다른 셸에서 Get-Content
실행될 때까지 셸 이 업데이트되지 않는 것으로 확인 dir
되었습니다.
Get-Content -Tail 100 -Wait .\logfile.log
.
배치 명령을 사용하여 DOS CMD 테일에 관심이있는 사람 (아래 참조).
그것은 지사가 아니며 때로는 반복됩니다.
사용법 : 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
전에이 줄을 추가했습니다 goto followloop
. 두 개의 핑을 보내고 그 사이에 1 초 동안 기다립니다. 그래서 그것은 CPU를 살게 할 것입니다! : D
timeout /t 2
합니까?
많은 옵션이 있지만 모든 고급 기능에 결함이 있습니다.
GnuWin32 꼬리 는 버그가 있습니다 ( α β γ )--f와 같은 것은 작동하지 않습니다.
UnxUtils 꼬리가 더 좋아 보이지만 (-f는 작동하지만 --pid는 ~ n은 아니지만 --lines = n은 -f와 함께 실패하는 것처럼 보이지만) 죽은 프로젝트 인 것처럼 보입니다.
Cygwin 은 매우 추악하고, 아마도 DLL 및 coreutils 패키지를 사용할 수는 있지만 여전히 pid와 같은 문제는 네이티브 win32 프로세스에서 작동하지 않습니다.
내가 사용했던 Windows의 꼬리를 . 확실히 사용하는 것만 큼 우아하지는 않습니다.
꼬리그러나 Windows를 사용하고 있습니다. ;)
나는 여기에서 답변 중 Log Expert를 보지 못했습니다.
사용자 정의 가능하며 로그 파일을 돌아 다니기에 매우 좋습니다. 지금까지는 최고의 Windows 그래픽 로그 뷰어입니다.
불행히도이 소프트웨어는 더 이상 사용할 수 없습니다. archive.org 에서 읽을 수 있습니다 .
아무것도 설치하지 않으려는 경우 표준 Windows 명령으로 작업을 수행하는 고유 한 배치 파일을 "빌드"할 수 있습니다. 다음은 그 방법에 대한 몇 가지 지침입니다.
1) find / c / v ""yourinput.file 을 사용하여 입력 파일의 줄 수를 가져옵니다. 출력은 다음과 같습니다.
---------- T.TXT: 15
2) for / f를 사용 하여이 출력을 구문 분석하여 숫자 15를 얻습니다.
3) set / a를 사용하여 건너 뛸 필요가있는 헤드 라인 수를 계산하십시오.
4) for / f "skip = n"을 사용 하면 헤드 라인을 건너 뛰고 테일 라인을 에코 / 처리합니다.
시간을 찾으면 배치 파일을 작성하여 여기에 다시 게시합니다.
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
UNIX 용 Windows 서비스를 사용해보십시오 . 꼬리뿐만 아니라 껍질, awk, sed 등을 제공합니다.
업데이트 -: 불행히도 2019 년 현재이 시스템은 Microsoft 다운로드 센터에서 더 이상 제공되지 않습니다.
한 창에서 여러 로그 파일을 동시에 볼 수 있기 때문에 TailMe를 선호합니다. http://www.dschensky.de/Software/Staff/tailme_en.htm
방금이 작은 배치 스크립트를 작성했습니다. 유닉스 "꼬리"만큼 정교하지는 않지만 파일의 마지막 10 줄로 출력을 제한하는 등 누군가가 추가하여 향상시킬 수 있기를 바랍니다.이 스크립트를 개선하는 경우 보내십시오. ~ [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.
단어에 후행 점이있는 것처럼 명령을 호출하면 (별도의 인수가 아닌) 단일 행을 인쇄합니다.
이 tail
명령 및 기타 여러 기능은 Windows Resource Kit Tools 패키지 에서 사용할 수 있습니다 .
Cygwin을 설치하지 않고 일부 Unix 유틸리티의 Win32 포트를 사용하려면 Win32 용 GNU 유틸리티를 권장 합니다.
Cygwin보다 가벼우면서 휴대가 간편합니다.
그래픽 로그 뷰어는 로그 파일을 보는 데 매우 좋지만 스크립트 (또는 배치 파일)에 통합 할 수있는 명령 줄 유틸리티의 요구를 충족하지 않습니다. 종종 이러한 단순하고 범용적인 명령은 특정 환경에 대한 특수 솔루션의 일부로 사용될 수 있습니다. 그래픽 방식은 그러한 용도에 쉽게 적합하지 않습니다.