使用sed我想从java堆栈跟踪中删除“... 12 more”/“... 14 more”字符串

时间:2018-06-15 14:53:38

标签: sed

我有一个用例我想从java堆栈跟踪中删除“... 12 more”/“... 14 more”字符串

举个例子:

    at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:2539)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:2684)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:2708)
Caused by: java.lang.SecurityException: Can not initialize cryptographic mechanism
    at javax.crypto.JceSecurity.<clinit>(JceSecurity.java:86)
    ... 12 more
Caused by: java.security.PrivilegedActionException: java.util.zip.ZipException: zip file is empty
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.crypto.JceSecurity.<clinit>(JceSecurity.java:76)
    ... 14 more

我尝试了以下命令,但删除了整个内容。

# sed -i '/^\s*at/d ; /^\s*.../d file.txt

请帮助!!

1 个答案:

答案 0 :(得分:0)

composer-common

选择以sed -e '/^\s\+\(at\|\.\.\.\)\s/d' 开头^的行\s\+后跟\( at\|三个句点\.\.\. {{ 1}}和空格\);删除\s这些行。

或者,使用扩展的RE语法:

d

(在正则表达式中sed -Ee '/^\s+(at|\.\.\.) /d' 表示任何字符;句点为.。)