回答:
これを入れてください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
grep -Fv -e def -e jkl
これはさらに高速です!
grep -vF $(pgrep myprocess)
grep -Fv -e 'Nopaging the limit is' -e 'keyword to remove is'
-F
(正規表現の代わりに)リテラル文字列で一致
-v
試合を逆転
-e
複数の検索パターンが可能(すべてリテラルおよび反転)
grep -v
インスタンスと正規表現の人工的な要件の両方を回避する唯一の方法です(複数の文字列を個別の引数で明確に指定できます)。ただ...何が含まれている可能性があり、文字列のスクリプトでプログラムその正規表現を構築する想像
別のオプションは、除外リストを作成することです。これは、除外するものの長いリストがある場合に特に便利です。
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
-v
一緒に使うことができるとは思いませんでした-f
。
grep -v -f <(gen_exclusions.sh) /var/log/admin.log
egrep -v "Nopaging the limit is|keyword to remove is"
tail -f admin.log|grep -v -E '(Nopaging the limit is|keyword to remove is)'
グループは連鎖させることができます。例えば:
tail -f admin.log | grep -v "Nopaging the limit is" | grep -v "keyword to remove is"
grep -v -e def -e jkl