目前在測試環境或生產環境用的比較多的查日誌方式:
1.搜索某個文件裏面是否包含字符串
命令格式:grep "被查找的字符串" filename
例如:一般會都使用traceId線程號來追蹤
grep "23e5434fr884d53f9" /applogs/rtlog/app/service/service.log
2.在多個文件中檢索某個字符串
命令格式:
- grep "被查找的字符串t" filename1 filename2 filename3 ...
- grep "被查找的字符串" *.log
3.搜索某個字符的前後幾行的行數:
命令格式:
- grep –C 10 "被查找的字符串" 文件名 匹配字符串的前後10行
- grep –A 10 "被查找的字符串" 文件名 匹配字符串的後10行
- grep –B 10 "被查找的字符串" 文件名 匹配字符串的前10行
4.顯示所檢索內容在文件中的行數,可以使用參數-n
命令格式: grep -n "被查找的字符串" *.log
5.檢索時需要忽略大小寫問題,可以使用參數“-i”
命令格式: grep -i "被查找的字符串" *.log
6.從文件內容查找不匹配指定字符串的行
命令格式:grep –v "被查找的字符串" 文件名
7.遞歸搜索某個目錄以及子目錄下的所有文件
命令格式:grep –r "被查找的字符串" 文件目錄
8.獲取哪些文件包含搜索的內容,並列出文件名
命令格式:grep -H –r "被查找的字符串" 文件目錄 | cut -d: -f1 [| uniq]
例如:
grep -H -r "v\$temp_space_header" /u01/app/Oracle/product/11.1.0/dbhome_1/rdbms/admin/ | cut -d: -f1
grep -H -r "v\$temp_space_header" /u01/app/oracle/product/11.1.0/dbhome_1/rdbms/admin/ | cut -d: -f1 | uniq
9.獲取與整個搜索字符匹配的內容
命令格式:grep –w "被查找的字符串" 文件名