1件のコメント

PowerShellで簡単に集計する方法

結果がいくつあるか数える

結果がいくつあるかを数えたいケースは結構あるとおもいます。一度テキストファイルに吐き出して、エディタで開いて、行数を見て……。なんていうことは必要なく、Measure-Objectを使えば一発です。

例えば、フォルダ内のアイテム数を数えたい時には以下のようにできます。

image

ファイルだけ数えたければ以下のように。

image

フォルダだけ数えたければ以下のように。

image

コネクションがいくつ貼られているかを数えたければnetstatの結果を数えることができます。結果を文字列で出力するコマンドレットの結果をMeasure-Objectに渡すと、文字列の行数を数えてくれます。(厳密に行数を数えたければ –Lineオプションをつけて行数を数えるほうが「行数」としては正確です。)

image

ESTABLISHEDな接続の数を数えたければ以下のように。

image

特定のIPアドレスとの接続の数を数えたければ以下のように出来ます。

image

CSVファイルの集計

PowerShellではCSVファイルの読み込みが非常に簡単に行えます。きちんと1行づつオブジェクトになるので、個人的には感動するレベルです。(だって、PowerShellは規定の状態でサーバーに入ってるんですから!)

以下のようなヘッダ付きのCSVを用意します。

image

コマンドレット一発でCSVファイルを読み込めます。

image

おっと、文字化けしてしまいました。これは、PowerShellがUTF-16しか読み込めないからです。UTF-16に変換する方法は色々ありますし、別途文字コード変換ツール等をつかってもらえばいいとおもいますが、PowerShellで1番簡単にできるのは以下のようにTypeを使う方法かとおもいます。。

image

たったこれだけでPowerShellにCSVファイルが読み込まれ、それぞれの行が1つのオブジェクトになっています。素晴らしいですね。

image

プロパティはStringですから、もちろん各種Stringのプロパティ、メソッドも使えます。

image

そして、簡単に行の集計ができます。

image

これだけ簡単に手軽に色々な集計ができるのはPowerShellの大きな魅力だと思います。是非皆さんも使ってみてください。

子供3人。家族優先。都内SIer勤務。Windows系中心のインフラよりの何でも屋。脱原発。 Microsoft MVP for Cloud and Datacenter Management.

1件のコメント

コメントを残す

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