125GB나 되는 대용량 로그파일을 분석할 일이 생겨서 내용을 분리하게 되었다.
Powershell 상에서 아래 코드로 원하는 line 단위로 파일을 분리할 수 있었으며, 메모리 점유율 또한 높아지지 않았다.
(물론 125GB나 되는 로그파일을 모두 쪼개는데는 무수히 많은 시간이 걸리긴 했음)
How To
$i=0; Get-Content [원본로그파일명] -ReadCount [읽어들일 Line 수] | %{ $i++; $_ | Out-File [출력경로(파일명포함)_$i.log]; Write-Host $i }
Example
$i=0; Get-Content input.log -ReadCount 100000 | %{ $i++; $_ | Out-File D:\tmp\split_$i.log; Write-Host $i }
참고로 여기서 사용된 % 문자는 Foreach-Object의 Alias 키워드이다