我想使用 Windows Powershell 从换行符终止的文件中提取任意范围的记录(记录 x 到记录 y( - 我正在使用的文件超过 7GB(超过 3700 万条记录(,这使得从文件开头或结尾以外的任何地方提取记录时Get-Content
有点不合理,因为它将指定范围的记录加载到内存中(并且一直导致我的系统表现不佳(。
(Get-Content -Path .7GB.txt -TotalCount 10000000)[-1000..-1]
有没有人建议如何使用Windows 10 PowerShell实现这一目标?
将Get-Content
放在括号中会将整个指定内容读入内存,然后再继续。别这样。Select-Object
允许您从给定的输入列表中提取特定范围。
Get-Content 'input.txt' | Select-Object -Skip 50 -First 100
上面将为您提供输入文件中的第 51 行到 150 行。
基于接受的答案,我编写了我的第一个Windows Powershell cmdlet实用程序,其中包含此方法。我已经在 MIT 许可证下将源代码发布在 GitHub 上:
https://github.com/autopulous/powershell.large.file.record.plucker