【powershell】headとtailをWindowsで使う場合のサンプル(ファイルの保存まで)

プログラミング,豆知識

機械学習を勉強する際、train用のテキストファイルを分割する場面があったのですが、サンプルコードではheadとtailが使われており、windowsでは使えなかったので調べた結果を備忘として残しておきます。

headとtailを使うためにはPowerShellを使う

headとtailの代用はコマンドプロンプトではできません。

Windows PowerShellを使います。

PowerShellと「コマンドプロンプト」はどちらも同じCUIですが、後発のPowerShellは「コマンドプロンプト」が抱えているいくつかの問題点を改良した作りになっています。

現在でも「コマンドプロンプト」を使えますが、PowerShellを利用できる環境であれば特に目的がない限りはPowerShellの利用がベストです。なぜなら、Windows 7のサポート終了でWindows 10へアップグレードすることが推奨されているように、今後は「コマンドプロンプト」に代わってPowerShellが普及していくと考えられるからです。

Get-Command Select-Objectでheadとtailの代用ができる

実際に見てもらったほうが早いと思うので以下サンプルコードです。

元のコード
head -n 6500 filelists/transcript.txt > filelists/transcript_train.txt
tail -n 85 filelists/transcript.txt > filelists/transcript_val.txt
powershellでの書き方
Get-Content "filelists/transcript.txt" | Select-Object -first 6500 | Out-File "filelists/transcript_train.txt"
Get-Content "filelists/transcript.txt" | Select-Object -last 85 | Out-File "filelists/transcript_val.txt"

最初の6,500行をfileistディレクトリのtranscript_train.txtというファイルに書き出しています。

後者のほうは、最後の85行目をfileistディレクトリのtranscript_val.txtというファイルに保存しています。

Get-Contentでfirstとtailの代用を紹介しているサイトはありましたが、Out-File付きで紹介しているサイトがなかったので、簡単ですが紹介しておきます。

短いですが、以上です。