在大文件上选择-first 1

时间:2012-07-06 21:24:48

标签: powershell

我正在尝试在非常大的文本文件上运行以下命令。但是,它很慢

((cat largefile.txt | select -first 1).split(",")).count()

在PowerShell中是另一种快速方式吗?似乎命令将扫描整个文件,无论如何。

2 个答案:

答案 0 :(得分:12)

要仅获取文本文件中的前x行数,请使用-totalcount参数:

((Get-Content largefile.txt -totalcount 1).split(",")).count

答案 1 :(得分:9)

比这更糟糕 - 它将加载整个文件将其转换为字符串数组。

使用本机.NET库仅加载第一行:

$reader = [System.IO.File]::OpenText("largefile.txt")
$line = $reader.ReadLine()
$reader.Close()

(借鉴How to process a file in Powershell line-by-line as a stream