我有一个用例我想从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
请帮助!!
答案 0 :(得分:0)
composer-common
选择以sed -e '/^\s\+\(at\|\.\.\.\)\s/d'
开头^
的行\s\+
后跟\(
at
或\|
三个句点\.\.\.
{{ 1}}和空格\)
;删除\s
这些行。
或者,使用扩展的RE语法:
d
(在正则表达式中sed -Ee '/^\s+(at|\.\.\.) /d'
表示任何字符;句点为.
。)