結果がいくつあるか数える
結果がいくつあるかを数えたいケースは結構あるとおもいます。一度テキストファイルに吐き出して、エディタで開いて、行数を見て……。なんていうことは必要なく、Measure-Objectを使えば一発です。
例えば、フォルダ内のアイテム数を数えたい時には以下のようにできます。
ファイルだけ数えたければ以下のように。
フォルダだけ数えたければ以下のように。
コネクションがいくつ貼られているかを数えたければnetstatの結果を数えることができます。結果を文字列で出力するコマンドレットの結果をMeasure-Objectに渡すと、文字列の行数を数えてくれます。(厳密に行数を数えたければ –Lineオプションをつけて行数を数えるほうが「行数」としては正確です。)
ESTABLISHEDな接続の数を数えたければ以下のように。
特定のIPアドレスとの接続の数を数えたければ以下のように出来ます。
CSVファイルの集計
PowerShellではCSVファイルの読み込みが非常に簡単に行えます。きちんと1行づつオブジェクトになるので、個人的には感動するレベルです。(だって、PowerShellは規定の状態でサーバーに入ってるんですから!)
以下のようなヘッダ付きのCSVを用意します。
コマンドレット一発でCSVファイルを読み込めます。
おっと、文字化けしてしまいました。これは、PowerShellがUTF-16しか読み込めないからです。UTF-16に変換する方法は色々ありますし、別途文字コード変換ツール等をつかってもらえばいいとおもいますが、PowerShellで1番簡単にできるのは以下のようにTypeを使う方法かとおもいます。。
たったこれだけでPowerShellにCSVファイルが読み込まれ、それぞれの行が1つのオブジェクトになっています。素晴らしいですね。
プロパティはStringですから、もちろん各種Stringのプロパティ、メソッドも使えます。
そして、簡単に行の集計ができます。
これだけ簡単に手軽に色々な集計ができるのはPowerShellの大きな魅力だと思います。是非皆さんも使ってみてください。