我知道 another question 非常相似,但由于某种原因,我仍然遇到问题。
我有一个 GC 日志,我正在尝试删除 []
中包含的 Tenured 部分。
63.544: [GC 63.544: [DefNew: 575K->63K(576K), 0.0017902 secs]63.546: [Tenured: 1416K->1065K(1536K), 0.0492621 secs] 1922K->1065K(2112K), 0.0513331 secs]
我申请
s/\[Tenured:.*\]//
并且相当期待,结果通过该行的其余部分被贪婪地修剪:
63.544: [GC 63.544: [DefNew: 575K->63K(576K), 0.0017902 secs]63.546:
因此,让我们尝试非贪婪 而不是 将右括号与
s/\[Tenured:[^\]]*\]//
匹配,但是没有进行匹配并且 sed 跳过该行,产生相同的原始输出:63.544: [GC 63.544: [DefNew: 575K->63K(576K), 0.0017902 secs]63.546: [Tenured: 1416K->1065K(1536K), 0.0492621 secs] 1922K->1065K(2112K), 0.0513331 secs]
我如何非贪婪地匹配和替换该部分?谢谢,
最佳答案
差不多:s/\[Tenured:[^]]*\]//
手册上说:
即在这种情况下不需要反斜杠。
关于regex - sed regex 到非贪婪替换?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1685575/