-4

我已经从服务器转储 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]

有谁知道如何使用正则表达式来做到这一点?因为价值是动态的。请建议

4

1 回答 1

1

看来你做了一个线程转储。

您可以尝试使用此 awk 单行代码来修改转储文件:

awk -v RS="\n\n" -v ORS="\n\n" '!/Locked ownable synchro/' yourDump > newDump

顺便说一句,这不是一个 java 问题,尽管您的输入文件是由 jstack 创建的。

于 2017-09-25T15:36:09.623 回答