単語リストを除外しながらtail -vaファイルを実行する

単語リストを除外しながらtail -vaファイルを実行する

継続的に書き込まれているログ ファイルを tail したいのですが、さまざまな「共通」エントリを除外して、スローされたエラーなどだけが表示されるようにしたいと思います。grep -v "pattern" にパイプすることはできますが、理想的にはスキップするエントリを含むファイルを使用したいです。何かアイデアはありますか?

答え1

あなたが言ったように使うことができます。しかし、使うgrep -v "pattern"代わりにpattern

`cat file_with_entires_to_skip`

バックティックを含めることを忘れないでください。コマンドは次のようになります。

tail -v FILE | grep -v "`cat FILE_WITH_ENTRIES_TO_SKIP`"

答え2

オプション-fを使用すると、grepパターンを 1 行に 1 つずつ含むファイルを指定できます。grep(1)マニュアル ページを参照してください。

さらに、unbuffer一部のシステムで使用可能なコマンドは、パイプラインで通常行われる出力バッファリングを無効にします。grepフィルタを追加すると、パイプラインの出力が遅れる可能性があります。詳細については、マニュアル ページを参照してくださいunbuffer(1)

答え3

私の grep には、--exclude-from=FILEファイルから除外パターンを追加できるオプションが含まれています。私は次のものを持っています:

my-macbook-pro:Sun America ianchesal$ grep --version
grep (GNU grep) 2.5.1

つまり、次のようにすることができます:

tail -f <file> | grep --exclude-from=excludes.txt

答え4

次を試してください: grep -v -f EXCLUDE_FILENAME_LIST TARGET_FILENAME

EXCLUDE_FILENAME_LIST = 検索から grep で除外する単語のリスト TARGET_FILENAME = grep で除外するプライマリ ファイル

関連情報