Windowsでログファイルを確認するにはこれらのコマンドが必要ですが、私はプログラムをインストールしません.WindowsのPowershellが好きです。Powershellで何を頭、尾、より多く、少なく、sedするか?
答えて
Get-Content
(エイリアス:gc
)は、通常、テキストファイルを読むためのオプションです。
gc log.txt | select -first 10 # head
gc -TotalCount 10 log.txt # also head
gc log.txt | select -last 10 # tail
gc -Tail 10 log.txt # also tail (since PSv3), also much faster than above option
gc log.txt | more # or less if you have it installed
gc log.txt | %{ $_ -replace '\d+', '($0)' } # sed
これは、小さなファイルの場合は十分に機能し、大きいファイルの場合(数MB以上)は多少遅くなる可能性があります。
PowerShell Community Extensionsには、特殊なファイル用のコマンドレット(Get-FileTailなど)が含まれています。
more.exe
がWindowsに存在する場合、less
のポートが簡単に見つかります(PowerShell Community Extensions、PSCX、1つを含む)。
PowerShellでは、どちらのプログラムでも別の方法はありませんが、構造化データの場合はOut-Grid
が役に立ちます。
Head
とTail
両方それぞれ-First
と-Last
パラメータを使用してSelect-Object
でエミュレートすることができます。
Sed
機能はすべて利用可能ですが、構造が異なります。フィルタリングオプションは、Where-Object
(またはForeach-Object
と範囲のある状態を介して)で利用できます。他の変換、操作はSelect-Object
とForeach-Object
で行うことができます。
しかし、PowerShellが(.NET)オブジェクトを渡すとき、すべての型付けされた構造体、日付はDateTime
のままです - 各コマンドがそれ自身を解析する必要がある文字列ではなく、sed
とそのようなプログラムの多くは冗長です。
Windowsで大きな(または小さい)ログファイルをクエリする必要がある場合は、私が見つけた最も良いツールはMicrosoftの無料Log Parser 2.2です。あなたが望むならPowerShellから呼び出すことができます。そして、それはあなたのためにすべての重労働を、そして非常に速くも行います。
ありがとうと、私の環境は、Log Parser2.2のシステム要件ではないWin2k8R2です –
私はいくつかのより良い解決策ました:
gc log.txt -ReadCount 5 | %{$_;throw "pipeline end!"} # head
gc log.txt | %{$num=0;}{$num++;"$num $_"} # cat -n
gc log.txt | %{$num=0;}{$num++; if($num -gt 2 -and $num -lt 7){"$num $_"}} # sed
ここではhead
とtail
を行うには、組み込みの方法です。大きなファイルを持っている場合は非常に遅いので、パイプは使用しないでください。これらのビルトインオプションを使用すると、巨大なファイルであっても非常に高速になります。
gc log.txt -head 10
gc log.txt -tail 10
gc log.txt -tail 10 -wait # equivalent to tail -f
[Joeyのコメント](https://stackoverflow.com/questions/9682024/how-to-do-what-head-tail- less-sed-in-powershell#comment60271566_9682594)は正反対のようです!誰が信頼するのか、どの(組み込みの)方法が最も効率的かをどのように知っていますか? –
@NH私の答えはJoeyのコメントと一致しています。彼のコメントは、「最後は遅いです...だからGet-Content -Tailが存在する理由です」 '| select -last'はパイプを使用します。私は '-tail'をパイプなしで使用しています。しかし、2つの矛盾する答えが見つかった場合は、おそらく評判の高い人物を信頼することができます。また、大きなファイルで2つの方法を試すこともできます。大きなファイルでは非常に明白です。 – wisbucky
入手しました。申し訳ありませんが、私は最初に私が記事を読むと混乱しているに違いない。 –
- 1. 何が良いですか?より多くのHTTP要求=より少ないデータ転送または少ないHTTP要求=より多くのデータ転送?
- 2. angularjsの要素をより多く/少なく表示
- 3. スムージネスがより多く表示され、より少なく表示される
- 4. SQL - より多くの列でSELECT DISTINCTを実行すると、結果は少なくなりますか?
- 5. sedでファイルの先頭と末尾を編集するには
- 6. couchdb多くの頭痛
- 7. 崩壊リンクをより多くの情報からより少ない情報に変更する方法
- 8. UIModalTransitionStylePartialCurl、カールの量がより少なく
- 9. スパークストリーミングではエグゼキュータの数がより少なくなります
- 10. データベースクエリを少なくする
- 11. Azure DocumentDBに、より多くのドキュメントを作成するか、アレイを含むドキュメントを少なくする必要がありますか?
- 12. なぜプロトコルで ``より多くのコンテキストが必要ですか?
- 13. ジョインが多いほど、PSQLクエリの結果は少なくなります
- 14. 多くの変数をより細かく見せる方法
- 15. 行頭をSed/Awk/Grepに置き換えてください。
- 16. フロントエンドでコンパイルを少なくする
- 17. javascriptで安価な価格をより多く計算する
- 18. より少ないまたはより多くの引数を持つ型チェック関数シグネチャ
- 19. Django、より多くの多くの2つの多くの管理者
- 20. より多くのアイテムセレクタ
- 21. は、より多くのブロック
- 22. DataSetより多くのデータベーストラフィック?
- 23. より多くのオプション
- 24. awashとsedでbashが使えなくなります。
- 25. PHPExcel - 多くのセルにスタイルをより速く適用する
- 26. 少なくともコールバックがシグナルに接続する順序を少なくとも少なくとも維持できますか?
- 27. VBScriptではなくPowershellを実行する利点は何ですか?
- 28. なぜこれらの折り目が頭/尾で止まるのですか?
- 29. はどのようにブートストラップドキュメント少なく
- 30. psr-4でより多くのパス
ログファイルが大きすぎます。約数MBです。 notepad.exeで表示するのは難しいです。 –
'notepad'をベースにしているのであれば、代替テキストエディタを見ることをお勧めします。(無料と有料の両方の)代替案がたくさんあります。すべてはメモ帳よりも優れています(それでも大したことではありません)。 – Richard
[PowerShell vs. Unix Shells](http://stackoverflow.com/questions/573623/powershell-vs-unix-shells)の可能な複製 – manojlds