web-dev-qa-db-ja.com

Linuxでログファイルを表示し、表示中にカスタムフィルターを適用するにはどうすればよいですか?

Linuxシステムでいくつかの巨大なログファイルを読む必要があります。ログには多くの混乱があります。現在、私はこのようなことをしています:

cat logfile.txt | grep -v "IgnoreThis\|IgnoreThat" | less

しかし、面倒です。別のフィルターを追加するたびに、lessを終了してコマンドラインを編集する必要があります。一部のフィルターは比較的複雑で、複数行の場合があります。

ログを読んでいるときにフィルターを適用する方法、およびこれらのフィルターをどこかに保存する方法を教えてください。

これを行うためのツールはありますか?私は新しいソフトウェアをインストールできないので、うまくいけば、それはすでにインストールされているものです-たとえば、less、vi、PythonまたはPerl libなど).

ログを生成するコードを変更して、生成するコードを少なくすることはできません。

45
Dan

multitail ツールを試してください-複数のログを一度に表示できるだけでなく、対話的に正規表現フィルターを適用できると確信しています。

4
gareth_bowles

使用する &patternコマンドはless内にあります。

マンページから

&パターン

          Display  only  lines which match the pattern; lines which do not
          match the pattern are not displayed.  If pattern  is  empty  (if
          you  type  &  immediately  followed  by ENTER), any filtering is
          turned off, and all lines are displayed.  While filtering is  in
          effect,  an  ampersand  is  displayed  at  the  beginning of the
          Prompt, as a reminder that some lines in the file may be hidden.

          Certain characters are special as in the / command:

          ^N or !
                 Display only lines which do NOT match the pattern.

          ^R     Don't interpret regular expression  metacharacters;  that
                 is, do a simple textual comparison.
110
ALF

ghostdog74の回答lessのマンページに基づいて、私はこれを思いつきました:

~/.bashrc

export LESSOPEN='|~/less-filter.sh %s'
export LESS=-R  # to allow ANSI colors

~/less-filter.sh

#!/bin/sh
case "$1" in
*logfile*.log*) ~/less-filter.sed < $1
  ;;
esac

~/less-filter.sed

/deleteLinesLikeThis/d  # to filter out lines
s/this/that/  # to change text on lines (useful to colorize using ANSI escapes)

次に:

  • less logfileFooBar.log.1-フィルターを自動的に適用します。
  • cat logfileFooBar.log.1 | less-フィルタリングせずにログを表示する

今のところこれで十分ですが、その場でフィルターを編集できるようにしたいと思います。

4
Dan

以下の man page を参照してください。たとえば、単語の検索に使用できるいくつかのオプションがあります。行編集モードもあります。

0
ghostdog74

Casstor Software SolutionsによるLogFilter(www.casstor.com)と呼ばれるアプリケーションがあり、Windows/Mac/Linuxテキストファイルを編集し、ファイルフィルタリングを簡単に実行できます。複数のフィルターと正規表現をサポートしています。あなたが探しているものかもしれません。

0
Ben