老是忘记怎么查看某个关键字的指令,看到有个老哥写得不错,我把它粘贴到这里备份啦
说明: 这个只是供自己以后查询使用,如有问题请指出。 仅供参考
查看匹配内容的前后几行:
reg : 代表要搜索的内容
destFile : 代表要搜索的文件
#grep -5 'reg' destFile //打印匹配行的前后5行
#grep -C 5 'reg' destFile //打印匹配行的前后5行
#grep -A 5 'reg' destFile //打印匹配行的后5行
#grep -B 5 'reg' destFile //打印匹配行的前5行
Linux查询某段时间内的日志:
命令格式: sed -n ‘/起始时间/’,’/结束时间/p’ [日志文件]
n : 读取下一个输入行,用下一个命令处理新的行而不是第一个命令
p : 打印输出
例如:
sed -n '/2019-07-23 17:45:00/','/2019-07-23 17:48:00/p' access.log
注意:日期时间格式要和日志文件中的保持一致;
查询到的内容输出到另外的文件
1 sed使用
sed -n ‘/2019:15:25:00/,/2019:17:30:00/p’ access.log >2019-25-30.log
如果时间格式不同,要用转义\来做,例如:
sed -n '/23\/Jul\/2019:17:45:00/','/23\/Jul\/2019:17:48:00/p' access.log > 2019-17.log
2 grep使用
grep “2019:15:2[5-9]” access.log >2019-25-30.log
查看某一行日志内容
使用sed 命令查看行内容
sed -n [行数],1p [文件]
2.使用vi编辑,查询:
打开vi编辑文件, 使用命令:set nu显示行号 // nu 是number的缩写
grep常见命令参数
-n 打印行号
grep -n ".*" h.txt 所有打印行号
grep -n "root" h.txt 匹配的内容显示行号
-v 不包括 所要查询的内容
-E 表示过滤 多个参数
grep -Ev "sshd|network|crond|sysstat|"
-o: 仅打印你需要的东西,默认打印正行
grep -o "hello" h.txt
-i: 忽略大小写
grep -i "hello" h.txt
-c: 用于统计文中出现的次数
–color=auto 过滤字段添加颜色
利用正则打印特定字符
\b:作为边界符,边界只包含特定字符的行
grep "\boy\b" /etc/passwd -->只过滤包含boy的行