首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PowerShell:如何计算csv文件中的行数?

PowerShell:如何计算csv文件中的行数?
EN

Stack Overflow用户
提问于 2011-07-28 16:07:04
回答 5查看 106.8K关注 0票数 28

如何使用powershell计算csv文件中的行数?我试过这样的东西

代码语言:javascript
复制
Get-Content -length "C:\Directory\file.csv"

代码语言:javascript
复制
(Get-Content).length "C:\Directory\file.csv"

但这些结果是错误的。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-07-28 16:11:29

通过管道将其传送到Measure-Object cmdlet

代码语言:javascript
复制
Import-Csv C:\Directory\file.csv | Measure-Object
票数 40
EN

Stack Overflow用户

发布于 2012-12-21 22:48:20

Get-Content和Measure-Object对于小文件来说很好,但是它们对内存的效率都非常低。我在处理大文件时遇到了真正的问题。

在使用这两种方法计算1 1GB文件中的行数时,Powershell会耗尽服务器上的所有可用内存(8 1GB),然后开始对磁盘进行分页。我把它放了一个多小时,但它仍然在磁盘上分页,所以我杀了它。

对于大文件,我发现的最好的方法是使用IO.StreamReader从磁盘加载文件,并使用一个变量对每行进行计数。这使内存使用量降到了非常合理的25MB,而且速度要快得多,1 6GB文件中的行数大约需要30秒,而6 6GB文件中的行数则需要几分钟。无论你的文件有多大,它都不会占用不合理的RAM:

代码语言:javascript
复制
[int]$LinesInFile = 0
$reader = New-Object IO.StreamReader 'c:\filename.csv'
 while($reader.ReadLine() -ne $null){ $LinesInFile++ }

上面的代码片段可以插入到使用get-content或measure-object的任何地方,只需引用$LinesInFile变量来获取文件的行数。

票数 56
EN

Stack Overflow用户

发布于 2019-03-18 01:33:59

您可以简单地在powershell中使用unix,如comand。

如果将test.csv归档,则用于获取行数命令为

代码语言:javascript
复制
gc test.csv | Measure-Object
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6855814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档