我从服务器转储JVM线程。从转储,我想用正则表达式删除一些行。
at java.lang.Thread.run(Thread.java:722)
Locked ownable synchronizers:
- <0x00000005b8052b20> (a java.util.concurrent.ThreadPoolExecutor$Worker)
"catalina-exec-126" daemon prio=10 tid=0x00007f7b58ac5800 nid=0x4171 runnable [0x00007f7ac4800000]
我希望输出像这样
at java.lang.Thread.run(Thread.java:722)
"catalina-exec-126" daemon prio=10 tid=0x00007f7b58ac5800 nid=0x4171 runnable [0x00007f7ac4800000]
有没有人知道如何使用正则表达式执行此操作?因为价值是动态的。请建议
答案 0 :(得分:1)
好像你做了一个线程转储。
您可以尝试使用此awk one-liner来修改转储文件:
awk -v RS="\n\n" -v ORS="\n\n" '!/Locked ownable synchro/' yourDump > newDump
顺便说一句,这不是一个java问题,尽管您的输入文件是由jstack创建的。