WindowsのBatch(cmd)/PowerShellでファイルの空行を削除する
Pocket

以前、LinuxやMacのコンソール上での空行削除についてまとめたが、Windowsではどうするのだろう?と思ったので、少し調べてみた。
さすがにLinuxやMacほど応用は効かないしわかりにくい、タイピングしにくい…LinuxやUNIXに慣れてるとかなり扱いづらいけど、とりあえず実現はできるようだ。

1.Batch(cmd)でファイルのすべての空行を削除する

Batch(コマンドプロンプト)でファイルのすべての空行を削除する場合、以下のようにする。

●Batch(cmd)

findstr /v /r /c:"^\ *$" 対象ファイル

20160702_223309000000_1

C:\Users\test>type blank_test.txt
123

456


789

C:\Users\test>findstr /v /r /c:"^\ *$" blank_test.txt
123
456
789
Sponsored Links

2.PowerShellでファイルのすべての空行を削除する

PowerShellでファイルのすべての空行を削除する場合、以下のようにする。

(gc ファイル) | ? {$_.trim() -ne "" }

20160702_224224000000_1

PS C:\Users\test> type .\blank_test.txt
123

456


789
PS C:\Users\test> (gc blank_test.txt) | ? {$_.trim() -ne "" }
123
456
789

 

Batchだと末尾の空行が削除できないことを考えると、PowerShellでやったほうがよさそう。
なお、PowerShellの場合は空白やタブを含んでいてもこれで削除してくれるので、結構シンプルに書ける。

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。