programing

Unix tail 명령어와 동등한 Windows

megabox 2023. 4. 19. 22:53
반응형

Unix tail 명령어와 동등한 Windows

로그 파일을 쓰는 동안 로그 파일의 출력을 감시할 수 있는 Unix 'tail' 명령어와 동등한 명령어를 찾고 있습니다.

PowerShell을 사용하는 경우 다음과 같이 작동합니다.

Get-Content filenamehere -Wait -Tail 30

Stefan의 댓글을 아래에서 올려서 사람들이 놓치지 않도록 하기 위해서

PowerShell 3에서는 마지막 x줄만 포함하는 Tail 파라미터가 도입되었습니다.

GNU Utilities for Win32 등의 설치를 권장합니다.꼬리를 포함한 대부분의 즐겨찾기가 있습니다.

Windows에서는 항상 Baretail을 사용하여 테일링을 하고 있습니다.그것은 무료이고 꽤 좋다.

사이그윈의 일부로 꼬리를 얻을 수 있습니다.

배치 명령어를 사용하는 DOS CMD tail에 관심이 있는 사용자(아래 참조)

현관도 아니고 가끔 줄이 반복되기도 해요.

사용방법: 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

여러 가지 옵션이 있지만 모두 고급 기능에 결함이 있습니다.

  • GnuWin32 tail은 버그가 있습니다(αβ ) ) - f plain은 동작하지 않습니다.

  • UnxUtils tail이 더 나은 것 같습니다(-f는 작동하지만 --pid는 작동하지 않는 것 같습니다. -n은 작동하지만 --lines=n은 실패하지만 -f는 작동하지 않습니다). 그러나 데드 프로젝트인 것 같습니다.

  • Cygwin은 매우 보기 흉한 머쉬로 DLL과 coreutils 패키지를 사용할 수 있지만 --pid가 네이티브 win32 프로세스에서 작동하지 않는 등의 문제가 있습니다.

아무것도 인스톨 하지 않는 경우는, 표준 Windows 커맨드로 작업을 실시하는 「자체만의」 배치 파일을 작성할 수 있습니다.여기 그것을 하는 방법에 대한 몇 가지 힌트가 있다.

1) find /c /v " your input을 사용합니다.file 입력 파일의 줄 수를 가져옵니다.출력은 다음과 같습니다.

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

2) /f를 사용하여 이 출력을 해석하여 숫자 15를 얻습니다.

3) set /a를 이용하여 건너뛸 Head line의 수를 계산한다.

4) /f "handline=n" 사용하여 Head line을 건너뛰고 Tail line을 echo/처리한다.

시간이 나면 그런 배치파일을 만들어서 다시 여기에 올릴게요.

집::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

Tail For Windows를 사용해 본 적이 있습니다.물론 사용하는 것만큼 우아하지는 않습니다.

꼬리
but then, you're using Windows. ;)

Windows PowerShell에서는 다음을 사용할 수 있습니다.

Get-Content <file> -Wait

여기 답변 중에 Log Expert를 본 적이 없습니다.

커스터마이즈 할 수 있어 로그 파일을 이동하는데 매우 적합합니다.지금까지는 Windows의 그래픽 로그 뷰어로 최적입니다.

안타깝게도 이 소프트웨어는 더 이상 사용할 수 없습니다.archive.org에서 읽을 수 있습니다.

최근에 Mtail을 사용했는데 잘 작동하는 것 같아요.이것은 위에서 설명한 베어테일과 같은 GUI 유형입니다.여기에 이미지 설명 입력

tail의 합니다.Windows Server 2003 Resource Kit Tools마이크로소프트 자체에서.

Windows Services for UNIX 를 사용해 주세요.꼬리뿐만 아니라 셸, awk, sed 등을 제공합니다.

업데이트 -: 안타깝게도 2019년부터 이 시스템은 Microsoft 다운로드 센터에서 사용할 수 없습니다.

여러 로그 파일을 한 창에서 동시에 볼 수 있기 때문에 Tail Me를 선호합니다.http://www.dschensky.de/Software/Staff/tailme_en.htm

DOS에는 tail 명령어가 없습니다.GNU tail 및 기타 GNU 툴용 Windows 바이너리를 다운로드 할 수 있습니다.

또 다른 옵션은 MSYS(Cygwin보다 경량)를 설치하는 것입니다.

DOS »type *nux'와 같은 기능cat그렇지만cattail단, True를 다운로드/설치하지 않고 위기 상황에서 사용할 수 있습니다.tail★★★★★★★★★★★★★★★★★★.

이 작은 대본을 방금 썼어요.Unix "tail"만큼 정교하지는 않지만, 누군가가 파일 마지막 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

명령 및 기타 많은 명령어는 윈도우즈 리소스 키트 도구 패키지에서 사용할 수 있습니다.

(Cygwin을 설치하는 대신) 일부 Unix 유틸리티의 Win32 포트를 사용하고 싶다면 Win32용 GNU 유틸리티를 추천합니다.

Cygwin보다 가볍고 휴대성이 뛰어납니다.

MKS 툴킷 설치...Windows에서 모든 Unix 명령을 실행할 수 있습니다.

명령어는 다음과 같습니다.

tail -f <file-name>  

Far Manager에서 파일을 눌러 표준 뷰어로 들어간 다음 키를 눌러 파일 끝으로 이동합니다.

파일이 업데이트되면 Far Manager가 자동으로 스크롤합니다.

그래피컬 로그 뷰어는 로그 파일을 표시하는 데 매우 편리하지만 스크립트(또는 배치 파일)에 통합할 수 있는 명령줄 유틸리티의 필요성을 충족하지 못합니다.대부분의 경우 이러한 단순하고 범용적인 명령어는 특정 환경을 위한 특수 솔루션의 일부로 사용할 수 있습니다.그래피컬한 방법으로는 그러한 용도에 쉽게 적합하지 않다.

WinTail도 시도해 보세요.

ََ

배치 파일에서 테일 기능의 요구에 맞는 유틸리티를 찾은 것 같습니다.'mtee'라고 부르는데 공짜예요.작업 중인 배치 파일에 통합했는데, 작업이 매우 잘 됩니다.실행 파일을 PATH 문의 디렉토리에 격납해 두면 됩니다.

다음은 링크입니다.

모니터

Kiwi Log Viewer를 쓰고 있어요.무료예요.

언급URL : https://stackoverflow.com/questions/187587/a-windows-equivalent-of-the-unix-tail-command

반응형