【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付きで紹介しているサイトがなかったので、簡単ですが紹介しておきます。
短いですが、以上です。