Muni Bus

パソコンの操作方法や設定方法を忘れないようにメモしています。ブログを一回引っ越ししているので、所々表示がかなり乱れています・・・

【PowerShell】テキストファイルを指定の行数のテキストファイルに分割する

Get-Contentコマンドレット(エイリアス:cat)の-ReadCountオプションを使う。このオプションに自然数を指定すると、行数をその数にしたオブジェクトに分解するため、これを順次ファイルに出力すればよい。以下はあらかじめline10.txtという10行からなるテキストファイルを用意して、それを3行ごとのテキストファイルに分割した例。最後は1行余るため、最後のファイルだけは1行になる。

PS > Get-Content -Encoding Default line10.txt
1011,     グラスワンダー,   前田玲奈
1012,       ヒシアマゾン,   巽悠衣子
1013, メジロマックイーン,   大西沙織
1014, エルコンドルパサー, 髙橋ミナミ
1015, テイエムオペラオー,   徳井青空
1016,   ナリタブライアン,   衣川里佳
1017,   シンボリルドルフ, 田所あずさ
1018,       エアグルーブ, 青木瑠璃子
1019,   アグネスデジタル, 鈴木みのり
1020,     セイウンスカイ,   鬼頭明里
PS > $i = 1; cat -ReadCount 3 line10.txt | % {$_ | Out-File -Encoding default ("line_{0:D2}.txt" -f $i); $i++}
PS > Get-ChildItem line*.txt | Select-Object Name, Length
Name        Length
----        ------
line10.txt     380
line_01.txt    114
line_02.txt    114
line_03.txt    114
line_04.txt     38
PS > Get-Content -Encoding Default line_01.txt
1011,     グラスワンダー,   前田玲奈
1012,       ヒシアマゾン,   巽悠衣子
1013, メジロマックイーン,   大西沙織
PS > Get-Content -Encoding Default line_02.txt
1014, エルコンドルパサー, 髙橋ミナミ
1015, テイエムオペラオー,   徳井青空
1016,   ナリタブライアン,   衣川里佳
PS > Get-Content -Encoding Default line_03.txt
1017,   シンボリルドルフ, 田所あずさ
1018,       エアグルーブ, 青木瑠璃子
1019,   アグネスデジタル, 鈴木みのり
PS > Get-Content -Encoding Default line_04.txt
1020,     セイウンスカイ,   鬼頭明里