小编rzi*_*r72的帖子

按线程解析日志文件部分

假设有一个像下面这样的示例日志文件,它是由 Java 程序中的多个线程异步写入的。

使用 grep/sed/awk/perl 之类的工具 - 是否有一种简单的方法可以解析仅与 [ServerThread-4] 行相关的所有信息,以及与该线程相关的任何 XML 数据.

但是我不想要任何 [ServerThread-10](或其他线程)行,或者那些不相关线程的这些行之后可能出现的任何 XML 数据。

我尝试像这样使用 sed 和 awk,但这些都不起作用,大概是因为我的开始和结束标记是一样的:

sed -n "/\[ServerThread-4\]/,/\[ServerThread-4\]/p" file.log > file-sed.log
Run Code Online (Sandbox Code Playgroud)
awk "/\[ServerThread-4\]/{flag=1;next}/\[ServerThread-4\]/{flag=0}flag" file.log > file-awk.log
Run Code Online (Sandbox Code Playgroud)

示例文件:

2020-09-22 18:06:24,333 [ServerThread-10] DEBUG com.company.abc.Time - CALCULATE_DATA,ServerThread-10,Request,7,linecount=2
2020-09-22 18:06:24,334 [ServerThread-10] DEBUG com.company.abc.webservice.wsc - Web service transfer time out set to: 130000 (ms)
2020-09-22 18:06:24,563 [ServerThread-4] DEBUG com.company.abc.function - XYZ Function Handler: class com.company.abc.function.XYZCalcDocHandler
2020-09-22 18:06:24,563 [ServerThread-4] DEBUG com.company.abc.function - num row 1
2020-09-22 18:06:24,563 [ServerThread-4] DEBUG com.company.abc.function - …
Run Code Online (Sandbox Code Playgroud)

bash perl awk grep sed

1
推荐指数
1
解决办法
129
查看次数

标签 统计

awk ×1

bash ×1

grep ×1

perl ×1

sed ×1