PowerShellで複数ファイルからキーワードを取得する
ここ数日、Powershellを見ていて、なかなか強力だと感じています。小さなタスクとしては、Powershellを使って、複数のファイルから1万行のレコードを取得するスクリプトを実装することです。最初はGet-ContentとWhere-Objectを組み合わせて使いたかったのですが、取得結果が遅かったり、取得したエントリを表示したときにどのファイルから来たのかわからなかったりと、こちらも簡単に実装できましたが、複数の方法を検討した結果、一つの強力なコマンドでこれらのニーズを全て、しかも超高速で実現できることに驚きました。
一般的にIISのログ解析に使われることが多く、このPSコマンドの紹介がメインなので、IISのログはサーバー側から取得しており、ここではテスト用に半分だけデータを掲載しています。
まず適当なディレクトリに移動して、カレントディレクトリのファイルを見ますが、そのうち4つのログファイルがテストに使われます。それらは以下の通りです。
そして、その強力な機能を実装するために、次のコマンドを使用するだけです。
たとえば、キーワードの書き込みを検索するには、書き込みを入力した後、検索結果は次のとおりです(傍受の唯一の部分は、ここでプライバシーに起因する、ログファイルは、データのちょうど比較的大きな量、私の創造であり、コンテンツは純粋なフィクション〜〜)です。
このステートメントを一時変数に代入すると、その瞬間にチェックアウトされたデータの量を確認することができます:。
500件のデータが4つのログファイルから瞬時に見つかりましたが、実はこれは構築したデータ量が少ないために見えていないのです。
この強力なコマンドを簡単に説明すると、次のようになります。
で説明したように、実は全部Select-Stringコマンドを使っているのです。
http://technet.microsoft.com/zh-cn/library/dd315403.aspx
Get-ChildItem は、現在のディレクトリにあるすべてのアイテムを取得し、パイプライン|入力でフィルタリングし、? (Where-Objectの別名)でフィルタリングし、カレントディレクトリのログファイルをフィルタリングする、$_はカレントオブジェクト、つまり前回のチェック結果を表す、-likeはパターンマッチを使う、$(Read-Host)はC#のReadLine ()に似たコンソールからの読み込み(対応する標準出力はWrite-Host)、つまりユーザーが ユーザーがキーワード入力するとコマンドが後ろから前へと遂行される、である。
まだ始めたばかりなので、何か間違いがあればお知らせします。
関連
-
PowerShellスクリプトでパスワードを保存する方法
-
powershellでSQL SERVERの全バージョンを弄る方法
-
PowershellによるWindowsログのクエリ方法
-
What-ifのためのPowershellエラー処理
-
PowerShellタイムロギングスクリプト
-
PowerShell DSC コンポーネント xExchange をリリースしました。
-
PowerShellでファイル名の一括変更
-
コマンドライン履歴のコマンドをコピーするPowerShellメソッド
-
Powershellでオブジェクトのデータ構造を展開し、JSON形式で出力する
-
PowershellでNTFSファイルシステムのパーミッションをクローンする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
nugetパッケージのファイル消失問題を解決するためのpowershellスクリプトを追加しました。
-
特定のWebページに関する情報を取得するPowershellコード
-
PowerShellでの追加を解説
-
CMDとWin powershellの違い
-
PowerShellパイプラインチュートリアル(パイプラインの例)
-
PowerShellのエスケープ文字とは何ですか?
-
PowerShell は、現在のスクリプトランタイムによって消費されるメモリの動的フェッチを実装しています。
-
PowerShell の実装は、ファイルを開くデフォルトのアプリケーションを照会する
-
PowerShellで文字列を別行動で表示する2つの方法
-
PowerShellによる印刷ジョブのクエリと削除のコード例