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
.
Head
및 First
별칭TotalCount
도 추가되었습니다.
따라서 명령은 다음과 같이 다시 작성할 수 있습니다.
Get-Content *filename* -Head *n*
Get-Content *filename* -Tail *n*
답변
more /e filename.txt P n
여기서 n은 표시 할 행 수입니다. 빠르게 작동하며 head
명령 과 똑같습니다 .
답변
답변
이것은 완전한 해킹이지만 형식, 헤더 등을 검사하고 싶은 거대한 파일이고 해결책을 찾고 있다면 항상 ‘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)