场景:java webjava
目标:查看最近的一个空指针异常的位置,及web
空指针异常发生时的前5行代码和后五行代码.bash
分析:spa
空指针异常是最常常发生的异常,通常都是代码的bug,因此颇有现实意义..net
获取前五行代码是为了查看请求参数,指针
后5行代码是为了确认异常发生的代码行号.日志
先看下示例,这样会对咱们的目的有一个感性的认识:code
解决思路:blog
1,第一步,咱们要获取日志文件中异常的行号,咱们可使用grep -n,get
其中-n就是为了显示行号;
2,第二步:我要截取日志文件的内容,能够配合使用head 和tail
解决方案:
命令:
grep -rnw "java.lang.NullPointerException" house_error.log |cut -d ':' -f 1 |xargs -i expr {} + 10 |xargs -i head -n {} house_error.log|tail -n 20
命令执行结果:
命令解释:
grep -rnw "java.lang.NullPointerException" house_error.log |cut -d ':' -f 1 |xargs -i expr {} + 10 |xargs -i head -n {} house_error.log|tail -n 20
awk的版本,后面文章再详解
参考: