Muni Bus

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

【PowerShell】テキストファイルからコメント行や空白行を取り除く

Where-Objectコマンドレット(エイリアス:?)を利用して-notmatch演算子を使えばよい。以下は、ヒア文字列を使用して複数行からなるtemp.txtというテキストファイルを作成し、それからコメント行(以下の例では#で始まる行)と空白行を取り除いた例。

PS > @'
>> #
>>  ABC
>>
>> #
>> あいう
>> '@ > temp.txt
PS > Get-Content .\temp.txt
#
 ABC

#
あいう
PS > Get-Content .\temp.txt | ? {$_ -notmatch "^\s*$|^\s*#.*$"}
 ABC
あいう

抽出された各行をさらに加工したい場合はForEach-Objectコマンドレット(エイリアス:%)を使えばよい。以下は、最後に各行の前後の空白を取り除く例。

PS > Get-Content .\temp.txt | ? {$_ -notmatch "^\s*$|^\s*#.*$"} | % {$_.Trim()}
ABC
あいう