PowerShell分割按行数分割文本文件
发布时间:2020-12-15 07:08:16 所属栏目:安全 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 ############################################# # Split a log/text file into smaller chunks # ############################################# #
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 ############################################# # Split a log/text file into smaller chunks # ############################################# # # WARNING: This will take a long while with extremely large files and uses lots of memory to stage the file # # Set the baseline counters # # Set the line counter to 0 $linecount = 0 # Set the file counter to 1. This is used for the naming of the log files $filenumber = 1 # Prompt user for the path $sourcefilename = Read-Host "What is the full path and name of the log file to split? (e.g. D:mylogfilesmylog.txt)" # Prompt user for the destination folder to create the chunk files $destinationfolderpath = Read-Host "What is the path where you want to extract the content? (e.g. d:yourpath)" Write-Host "Please wait while the line count is calculated. This may take a while. No really,it could take a long time." # Find the current line count to present to the user before asking the new line count for chunk files Get-Content $sourcefilename | Measure-Object | ForEach-Object { $sourcelinecount = $_.Count } #Tell the user how large the current file is Write-Host "Your current file size is $sourcelinecount lines long" # Prompt user for the size of the new chunk files $destinationfilesize = Read-Host "How many lines will be in each new split file?" # the new size is a string,so we convert to integer and up # Set the upper boundary (maximum line count to write to each file) $maxsize = [int]$destinationfilesize Write-Host File is $sourcefilename - destination is $destinationfolderpath - new file line count will be $destinationfilesize # The process reads each line of the source file,writes it to the target log file and increments the line counter. When it reaches 100000 (approximately 50 MB of text data) $content = get-content $sourcefilename | % { Add-Content $destinationfolderpathsplitlog$filenumber.txt "$_" $linecount ++ If ($linecount -eq $maxsize) { $filenumber++ $linecount = 0 } } # Clean up after your pet [gc]::collect() [gc]::WaitForPendingFinalizers() 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |