sed正则表达式非贪婪替换?

Jé *_*eue 4 regex unix garbage-collection replace sed

我知道另一个非常相似的问题,但由于某种原因,我仍然遇到问题.

我有一个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]
Run Code Online (Sandbox Code Playgroud)

我申请 s/\[Tenured:.*\]//

并且非常期待,结果在整个线路的剩余部分贪婪地修剪:

63.544: [GC 63.544: [DefNew: 575K->63K(576K), 0.0017902 secs]63.546:
Run Code Online (Sandbox Code Playgroud)

所以,让我们尝试非贪婪匹配右边括号,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]
Run Code Online (Sandbox Code Playgroud)

我如何非贪婪地匹配和替换该部分?谢谢,

小智 5

几乎:s /\[终身:[^]]*\] //

手册说:

要在列表中包含文字"]',请将其设为第一个字符(在可能的"^"之后).

即在此上下文中不需要反斜杠.

  • 拉兹