テキストファイルを分割する
logファイルを分析したかったのだけれど、ファイルが大きくなりすぎて動きが悪くて困ったとき、ファイルを小分けにしたくなった。
$utf8n = New-Object System.Text.UTF8Encoding $False; $path = ‘C:\Users\name\testsplit’; $i = 1; Get-Content “$path\File_0.txt” -ReadCount 10000 | % {[System.IO.File]::WriteAllLines(“$path\splitf_$i.txt”, $_, $utf8n); $i++}
$utf8n = New-Object System.Text.UTF8Encoding $False;
UTF-8エンコーディングオブジェクトを生成し、BOM(Byte Order Mark)を付けない設定。
$path = ‘C:\Users\name\testsplit’;
フォルダのパスを設定。
$i = 1;
ファイル名に使用する変数を定義。
Get-Content “$path\File_0.txt” -ReadCount 10000
Get-Content “$path\(元ファイル名).txt” で中身を取得。
-ReadCount (行数) で行数指定。
| % {[System.IO.File]::WriteAllLines(“$path\splitf_$i.txt”, $_, $utf8n); $i++}
| (パイプライン)前に取得した結果を %{(処理)}で繰り返し実行する。