我正在尝试使用tail -f
查看日志文件,并希望排除包含以下字符串的所有行:
"Nopaging the limit is"` and `"keyword to remove is"
我可以排除一个这样的字符串:
tail -f admin.log|grep -v "Nopaging the limit is"
但如何排除包含string1
或string2
。
答案 0 :(得分:85)
将其放入filename.txt
:
abc
def
ghi
jkl
grep命令使用-E选项,字符串中的标记之间有管道:
grep -Ev 'def|jkl' filename.txt
打印:
abc
ghi
使用-v选项命令,其中包含由parens包围的标记之间的管道:
egrep -v '(def|jkl)' filename.txt
打印:
abc
ghi
答案 1 :(得分:33)
另一种选择是创建一个排除列表,当您有一长串要排除的内容时,这是特别有用的。
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
答案 2 :(得分:28)
-F
-v
匹配文字字符串(而不是正则表达式)
-e
反转匹配
select empid, lastname
from HR.Employees
where LastName LIKE '[a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z]%' COLLATE Latin1_General_CS_AS;
允许多种搜索模式(所有文字和反向)
答案 3 :(得分:19)
egrep -v "Nopaging the limit is|keyword to remove is"
答案 4 :(得分:11)
tail -f admin.log|grep -v -E '(Nopaging the limit is|keyword to remove is)'
答案 5 :(得分:10)
您可以像这样使用常规grep:
tail -f admin.log | grep -v "Nopaging the limit is\|keyword to remove is"
答案 6 :(得分:5)
greps可以链接。例如:
tail -f admin.log | grep -v "Nopaging the limit is" | grep -v "keyword to remove is"