143

tail-fを使用してログ ファイルを表示しようとしており、次の文字列を含むすべての行を除外したいと考えています。

"Nopaging the limit is"`  and `"keyword to remove is"

次のように 1 つの文字列を除外できます。

tail -f admin.log|grep -v "Nopaging the limit is"

しかし、またはのいずれかを含む行を除外するにはどうすればよいですstring1string2

4

8 に答える 8

133

grep を使用して複数の行を除外する 2 つの例:

これを入れてくださいfilename.txt

abc
def
ghi
jkl

文字列内のトークン間のパイプで -E オプションを使用する grep コマンド:

grep -Ev 'def|jkl' filename.txt

プリント:

abc
ghi

括弧で囲まれたトークン間のパイプで -v オプションを使用するコマンド:

egrep -v '(def|jkl)' filename.txt

プリント:

abc
ghi
于 2014-08-11T18:28:41.740 に答える
70
grep -Fv -e 'Nopaging the limit is' -e 'keyword to remove is'

-F(正規表現の代わりに) リテラル文字列による一致

-v一致を反転します

-e複数の検索パターンが可能 (すべてリテラルおよび反転)

于 2016-11-01T23:50:59.120 に答える
47

別のオプションは、除外リストを作成することです。これは、除外するもののリストが長い場合に特に役立ちます。

vi /root/scripts/exclude_list.txt

除外したいものを追加します

Nopaging the limit is
keyword to remove is

ここで、grep を使用してファイル ログ ファイルから行を削除し、除外されていない情報を表示します。

grep -v -f /root/scripts/exclude_list.txt /var/log/admin.log
于 2014-02-13T08:30:00.790 に答える
23
egrep -v "Nopaging the limit is|keyword to remove is"
于 2013-04-25T10:49:43.443 に答える
17
tail -f admin.log|grep -v -E '(Nopaging the limit is|keyword to remove is)'
于 2013-04-25T10:51:53.857 に答える
13

次のように通常の grep を使用できます。

tail -f admin.log | grep -v "Nopaging the limit is\|keyword to remove is"

于 2014-10-21T04:43:57.947 に答える