我正在尝试使用 tail -f查看日志文件,并希望排除包含以下字符串的所有行:
tail -f
Nopaging the limit is和 keyword to remove is
Nopaging the limit is
keyword to remove is
我可以像这样排除一个字符串:
tail -f admin.log|grep -v "Nopaging the limit is"
但是如何排除包含 string1或 string2的行?
string1
string2
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)'
另一个选项是创建一个排除列表,当你有一长串要排除的事情时,这个选项特别有用。
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
grep
把这些线放在 filename.txt中测试:
filename.txt
abc def ghi jkl
使用 -E标志的 grep命令,字符串中的标记之间有一个管道:
-E
grep -Ev 'def|jkl' filename.txt
印刷品:
abc ghi
使用 -v标志的 egrep,标记之间的管道由括号包围:
-v
egrep -v '(def|jkl)' filename.txt
或者通过 grep参数堆叠 -e标志是否可行(credit-> @Frizlab) :
-e
@Frizlab
grep -Fv -e def -e jkl filename.txt
您可以像下面这样使用常规 grep:
tail -f admin.log | grep -v "Nopaging the limit is\|keyword to remove is"
Grep 可以被链接,例如:
tail -f admin.log | grep -v "Nopaging the limit is" | grep -v "keyword to remove is"
grep -Fv -e 'Nopaging the limit is' -e 'keyword to remove is'
-F通过文字字符串(而不是正则表达式)匹配
-F
-v反转火柴
-e允许多种搜索模式(全文字和倒置)
如果要使用正则表达式:
grep -Ev -e "^1" -e '^lt' -e 'John'