場景: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的版本,後面文章再詳解
參考: