8

非常に大きなテキスト ファイルに対して次のコマンドを実行しようとしています。しかし、それは非常に遅いです

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

パワーシェルで代替の高速な方法はありますか? コマンドは何があってもファイル全体をスキャンするようです。

4

2 に答える 2

12

テキスト ファイルの最初の x 行だけを取得するには、–totalcount パラメーターを使用します。

((Get-Content largefile.txt -totalcount 1).split(",")).count
于 2012-07-06T21:32:46.403 に答える
9

それよりも悪いのは、ファイル全体をロードて文字列配列に変換することです。

ネイティブ .NET ライブラリを使用して、最初の行だけを読み込みます。

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

( Powershell でファイルを行ごとにストリームとして処理する方法から借用)

于 2012-07-06T21:31:04.950 に答える