我知道 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/

    10-16 12:43