'tail' 명령어와 동등한 명령어
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
Windows PowerShell이 설치되어 있는 경우(XP부터 포함되어 있는 것 같습니다) cmd부터 실행할 수 있습니다.실행:
헤드 명령:
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*
갱신하다
3.0 8 에 PowerShell 3.0(Windows 8 이)) 추가TailLastHead ★★★★★★★★★★★★★★★★★」First합니다.TotalCount을 사용하다
따라서 명령어는 다음과 같이 다시 쓸 수 있습니다.
Get-Content *filename* -Head *n*
Get-Content *filename* -Tail *n*
정확한 등가물은 없다.단, n번째 줄 뒤에 파일 출력을 시작하는 +n 옵션이 있는 네이티브 DOS 명령어 "more"가 있습니다.
DOS 프롬프트:
C:\>more +2 myfile.txt
위의 명령어는 첫 번째 2행 뒤에 모든 것을 출력합니다.
이것은 실제로 UNIX 헤드의 반대입니다.
UNIX 콘솔:
root@server:~$ head -2 myfile.txt
위의 명령어는 파일의 처음 2줄만 인쇄합니다.
more /e filename.txt P n
여기서 n = 표시할 행 수입니다.가 , ★★★★★★★★★★★★★★★★★★★★★★★★★★★head명령어를 입력합니다.
파워셸:
Get-Content C:\logs\result.txt -Tail 10
Get-Content C:\logs\result.txt -wait (monitor the tail)
CoreUtils는 표준 UNIX 도구 모음인 GnuWin32에서 Windows로 포팅할 수 있습니다.
그것은 무엇보다도 머리를 포함하고 있다.
이것은 완전한 해킹이지만 포맷이나 헤더 등을 조사하고 솔루션을 찾고 있는 대용량 파일이라면 언제든지 새로운 파일과 CTRL-C로 '더 보기' 출력을 빠르게 수정할 수 있습니다.출력 행은 정확하게 제어할 수 없으며 출력 행 중간에 종료될 가능성이 높지만, 그렇지 않으면 사용할 수 없는 작은 파일을 캡처할 수 있는 저렴한 방법입니다.
예.
C:\more test.csv > test.txt
^C C:\more txt
1과 1과 1
2/4/4/2
etc... C:\
이렇게 하면 됩니다만, 보기만큼 빠릅니다(대략 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"은 파일 이름입니다.
Matt가 이미 언급한 +n을 더 사용할 경우 긴 파일에서 일시 중지되는 것을 방지하려면 다음과 같이 하십시오.
더 많은 +1 myfile.txt > con
more로부터의 출력을 리다이렉트 해도 일시정지하지 않고, 여기서 콘솔로 리다이렉트 합니다.원하는 최종 결과일 경우 이와 같은 다른 파일로 리다이렉트할 수 있습니다.> 를 사용하여 파일로 리다이렉트하여 이미 존재하는 경우 덮어쓰거나 > > 를 사용하여 기존 파일에 추가합니다(둘 중 하나를 사용하여 con으로 리다이렉트 할 수 있습니다).
머리와 꼬리가 에뮬레이트된 Git bash도 사용할 수 있습니다.
Get-content -Tail n file.txt is is is에 가까운 이다.taillinux.linuxs.dlinux.dlinux.
Get-Content *filename* | Select-Object -last *n*이치말할 필요도 없이 10GB 로그파일이 마음에 들지 않았습니다.-Tail옵션은 파일 끝에서 시작됩니다.
PS에서 다음 명령을 사용합니다.
Select -Last 1
이 명령어는 파이프라인으로도 사용할 수 있습니다.
첫 번째 줄을 가져오는 예:
type .\out.txt | Select -Last 1
또는 첫 번째 줄을 얻으려면:
type .\out.txt | Select -First 1
head 명령어가 필요한 경우 Cygwin을 설치하는 방법이 있습니다.그러면 모든 UNIX 도구를 자유롭게 사용할 수 있습니다.
이것이 좋은 해결책이 아닌 경우 findstr을 사용하여 끝 표시기를 검색할 수 있습니다.
MSDN의 findstr:http://technet.microsoft.com/en-us/library/bb490907.aspx
다음은 DOS의 첫 번째 9줄을 제공하는 빠른 네이티브 헤드 명령입니다.
findstr /n "." myfile.txt | findstr "^.:"
각 행의 선두 2 문자는 행 번호가 됩니다.
리소스 키트는 http://www.microsoft.com/downloads/en/confirmation.aspx?familyId=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displayLang=en 에서 다운로드할 수 있습니다.
꼬리가 들어있어요.exe 툴이지만 일부 Windows 버전과만 호환됩니다.
(이 투고에서 복사:Windows용 테일명령어)
FWIW는 파일 선두에서 불확실한 수의 레코드를 잘라내야 하는 사용자에게는 more >가 잘 작동합니다.이것은, 개발의 초기 단계에서 작업할 수 있는 작은 파일을 가지는 것만으로 편리합니다.
범위를 추출해 본 적은 없지만 다음 DOS 명령을 사용하여 회선을 얻을 수 있습니다.
find /N " " *.log|find "[6]"
대부분의 파일에는 공백이 포함되어 있기 때문에 이 명령어는 모든 LOG 파일에서 모든 행을 가져와 각 파일에 대해 기본적으로1부터 번호를 매깁니다. 다음 번호가 매겨진 를 두 파이프로 합니다.FIND6번으로 태그된 행을 검색하는 명령어.
set /p line= < file.csv
echo %line%
cmd Windows의 파일 첫 줄을 변수 %line%로 반환합니다.
무료입니다head이 페이지에서 사용할 수 있는 유틸리티입니다.아직 안 먹어봤어요.
Windows 10 을 실행하고 있는 경우는, 「Linux Subsystem for Windows」를 사용할 수 있습니다.
https://learn.microsoft.com/en-us/windows/wsl/install-win10
이를 통해 윈도 내에서 네이티브 Linux 명령어를 실행할 수 있으므로 Linux에서와 동일하게 tail을 실행할 수 있습니다.
텍스트의 첫 번째 몇 줄(헤드)을 유지하려면:
set n=<lines>
for /l %a in (1,1,%n%) do (
for /f "tokens=*" %i in ('find /v /n "" ^< test1.txt ^| find "[%a]"') do (
REM ove prefixed line numbers:
set a=%i
set a=!a:*]=!
echo:!a!)
)
텍스트의 첫 번째 몇 줄(꼬리)을 삭제하려면:
set n=<lines>
set file=<file.txt>
set /a n=n+1 >nul
for /f "tokens=*" %i in ('find /v /c "" ^< %file%') do set total=%i
for /l %a in (%n%,1,%total%) do (
for /f "tokens=*" %i in ('find /v /n "" ^< %file% ^| find "[%a]"') do (
REM ove prefixed line numbers:
set a=%i
set a=!a:*]=!
echo:!a!)
)
주의:
헤드 기능은 다음 방법으로도 달성할 수 있습니다.fsutil
테일 기능은 다음 방법으로도 달성할 수 있습니다.fc&comp
Windows 10 cm로 테스트 완료
나는 틀에서 벗어날 방법이 없다고 생각한다.DOS에는 이러한 명령어가 없으며, (큰 어려움 없이) 배치 파일을 시뮬레이션하는 데 한계가 있습니다.
경고: &, !, < 등의 문자를 특수하게 해석하기 때문에 알 수 없는 텍스트 입력의 배치파일, 토큰 및 구분 기능을 사용하면 장애가 발생할 수 있습니다.이러한 메서드는 예측 가능한 텍스트에만 예약해야 합니다.
언급URL : https://stackoverflow.com/questions/1295068/windows-equivalent-of-the-tail-command
'programing' 카테고리의 다른 글
| 모든 것을 무시합니다.DS_모든 폴더 및 하위 폴더에 파일 저장 (0) | 2023.04.10 |
|---|---|
| python에서 list.index(존재하지 않을 수 있음)를 처리하는 가장 좋은 방법? (0) | 2023.04.10 |
| 대상 주체 이름이 잘못되었습니다.SSPI 컨텍스트를 생성할 수 없습니다. (0) | 2023.04.10 |
| 다른 포크의 병합되지 않은 업스트림 풀 요청을 포크에 적용하려면 어떻게 해야 합니까? (0) | 2023.04.10 |
| SQL Server의 에일리어스 컬럼에서 GROUP BY를 실행하려면 어떻게 해야 합니까? (0) | 2023.04.10 |