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