linux堡垒机下定位日志文件内容
查找关键词grep
命令:
grep '关键字' 文件 --color
功能:搜素文件内容
语法:
grep [-iv] 关键字 文件
-i 不区分大小写
-v 忽略指定字符串
-n 显示行号
-C <显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行前后的内容。
-E :开启扩展(Extend)的正则表达式
示例:
#查看当前目录下文件可以不加路径
grep -i mysql instasl.log
#查看文件信息,同时忽略段首#开头的行
grep -v ^# /etc/inittab
从多个文件中查找关键词
命令:
grep 'linux' test.txt test2.txt
输出:
grep -n 'linux' test.txt test2.txt
grep 'linux' test.txt test2.txt
多文件时,输出查询到的信息内容行时,会把文件的名字显示在行前并加上":"作为标示符
//实例:找出已u开头的行内容
cat test.txt |grep ^u
//实例:输出非u开头的行内容
cat test.txt |grep ^[^u]
//实例:输出以hat结尾的行内容
cat test.txt |grep hat$
//实例:显示包含ed或者at字符的内容行
cat test.txt |grep -E "ed|at"
输出:
[root@localhost test]# cat test.txt |grep -E "peida|com"
peida.cnblogs.com
[root@localhost test]# cat test.txt |grep -E "ed|at"
实战操作
搜索一个关键词
#包含关键词内容的上下文
grep -C 5 '关键词' catalina.out --color
搜索多个关键词
或操作
# 找出文件(filename)中包含123或者包含abc的行
grep -E '123|abc' filename
# 用egrep同样可以实现
egrep '123|abc' filename
# awk 的实现方式
awk '/123|abc/' filename
与操作
#显示既匹配 关键词1 又匹配 关键词2 的行。
grep '关键词1' files | grep '关键词2' --color
返回一个匹配项
# 使用-m 1 ,返回第一个匹配项
grep -m 1 '关键词' filename --color
#使用|head -1,返回第一个匹配项
grep '关键词' filename | head -1
#返回最后一个匹配项
grep '关键词' filename | tail -1