AWKではテキストファイルのサイズによらず同じ方法で処理をしていくことができます。一方でPowerShellではその特性ゆえにパフォーマンスを維持しようとすると少しややこしいということについて解説しました。
動画の概要
前回の「回りくどいテキスト処理」で解説したとおり、テキストはStringオブジェクトとして扱わなければならないということがありました。
PowerShellでのテキストファイル処理
テキストファイルとなると、さらにGet-Contentコマンドレットで読み込んだものは各行がStringオブジェクトとなり、パイプラインにはStringオブジェクトの配列が送り込まれるようになります。
そこで、繰り返しオブジェクトへの操作を行うためにForEach-Objectを利用するようになります。
流れ込んできたオブジェクトは特殊変数「$_」へ割り当てされるので、これを利用して操作を行うようになります。
大きなサイズのテキストファイル処理
PowerShellにおいて、Get-Contentでテキストファイルを読み込むと、ファイルの最後の行までがすべてオブジェクト化されてしまいます。つまり、どんなに大きなファイルであっても最後まで読み込むことになってしまいます。
そこで、あまりに大きなテキストファイルを操作する場合には.Net Frameworkを利用する必要が出てきます。
ただし、こうした作業はVB.NetやC#で書き直したほうが良いかもしれません。
0コメント