[windows] ‘tail’명령에 해당하는 Windows

Windows 명령 줄에서 * nix tail 명령 을 시뮬레이션하는 방법이 있습니까? 파일이 있고 텍스트 의 처음 n 줄을 잘라내는 방법을 원합니다 . 예를 들면 :

D:\>type file.txt
line one
line two
line three
D:\>*[call to tail]* > result.txt

D:\>type result.txt
line two
line three



답변

정확히 동등한 것은 없습니다. 그러나 n 번째 줄 이후에 파일 출력을 시작하는 + n 옵션이있는 기본 DOS 명령 “more”가 있습니다.

DOS 프롬프트 :

C:\>more +2 myfile.txt

위의 명령은 처음 두 줄 이후의 모든 것을 출력합니다.
이것은 실제로 Unix head 의 반대입니다 .

Unix 콘솔 :

root@server:~$ head -2 myfile.txt

위의 명령은 파일의 처음 두 줄만 인쇄합니다.


답변

경우 , 당신은 Windows PowerShell을 설치 방금 cmd.exe를에서 실행할 수 있습니다 (I는 XP 이후 포함 생각)

헤드 명령 :

powershell -command "& {Get-Content *filename* -TotalCount *n*}"

꼬리 명령 :

powershell -command "& {Get-Content *filename* | Select-Object -last *n*}"

또는 PowerShell에서 직접 :

Get-Content *filename* -TotalCount *n*
Get-Content *filename* | Select-Object -last *n*

최신 정보

PowerShell 3.0 (Windows 8 이상) Tail은 alias Last.
HeadFirst별칭TotalCount 도 추가되었습니다.

따라서 명령은 다음과 같이 다시 작성할 수 있습니다.

Get-Content *filename* -Head *n*
Get-Content *filename* -Tail *n*


답변

more /e filename.txt P n

여기서 n은 표시 할 행 수입니다. 빠르게 작동하며 head명령 과 똑같습니다 .


답변

GnuWin32 에서 CoreUtils 를 얻을 수 있습니다.Windows로 포팅 된 표준 유닉스 도구 모음 인 에서 있습니다.

무엇보다도 머리가 포함되어 있습니다.


답변

이것은 완전한 해킹이지만 형식, 헤더 등을 검사하고 싶은 거대한 파일이고 해결책을 찾고 있다면 항상 ‘more’출력을 새 파일로 리디렉션하고 CTRL-C 빨리. 출력 행은 정확하게 제어 할 수 없으며 출력 행 중간에서 종료 할 가능성이 높지만 사용할 수없는 작은 파일을 잡는 저렴한 방법입니다.

전의.

C : \ more test.csv> test.txt 
^ C C : \ more test.txt
라인 1
라인 2
등 ...... 씨:\


답변

음, 이것은 그것을 것입니다. 그러나 그것은 보이는 것만 큼 빠릅니다 (대략 O (n * m), 여기서 n은 표시 할 줄 수이고 m은 파일의 총 줄 수입니다) :

for /l %l in (1,1,10) do @for /f "tokens=1,2* delims=:" %a in ('findstr /n /r "^" filename ^| findstr /r "^%l:"') do @echo %b

여기서 “10”은 인쇄 할 줄 수이고 “filename”은 파일 이름입니다.


답변

Powershell :

Get-Content C:\logs\result.txt -Tail 10

Get-Content C:\logs\result.txt -wait (monitor the tail)