7

改行のない巨大な XML ファイル (0.5 GB) があります。ファイル全体を開かずに、たとえば最初の 200 文字を表示できるようにしたいと考えています。PowerShell でこれを行う方法はありますか?

4

4 に答える 4

22

PowerShell デスクトップ (5.1 まで)

次のように Get-Content を使用してバイト レベルで読み取ることができます。

$bytes = Get-Content .\files.txt -Encoding byte -TotalCount 200
[System.Text.Encoding]::Unicode.GetString($bytes)

ログ ファイルが ASCII の場合は、次のように簡略化できます。

[char[]](Get-Content .\files.txt -Encoding byte -TotalCount 200)

PowerShell Core 6.0 以降

bytePowerShell Core はエンコードをサポートしていません。-AsByteStreamパラメータに置き換えられました。

$bytes = Get-Content .\file.txt -AsByteStream -TotalCount 200
[System.Text.Encoding]::Unicode.GetString($bytes)
于 2013-09-21T19:21:14.377 に答える
0

Get-Content は -ReadCount オプションを使用するため、最初の X 行のみを取得できます。

本当に文字の粒度が必要な場合は、.NET の [IO.File]::Read メソッドのいずれかを使用する必要があります。

于 2013-09-21T19:01:29.593 に答える
-2

(get-content myfile).Substring(0,x)

x は各行から必要な文字数です。例: $lines = (get-content myfile).Substring(0,10) は、配列の各メンバーに各行の最初の 10 文字が含まれる文字列の配列を返します。 myfile.

于 2020-01-24T13:51:03.257 に答える