-e标志为sed

qui*_*tin 1 regex sed

我似乎记得sed的一个-E标志启用扩展的正则表达式,然后查看今天的man页面我看到它没有,但是

echo development.properties | sed -E 's/(development.|staging.|qa.|production.)//'
Run Code Online (Sandbox Code Playgroud)

性能

echo development.properties | sed 's/(development.|staging.|qa.|production.)//'
Run Code Online (Sandbox Code Playgroud)

development.properties

echo development.properties | sed -r 's/(development.|staging.|qa.|production.)//'
Run Code Online (Sandbox Code Playgroud)

性能

因此,在我看来,-E正在做某事,而且我冒昧地说它现在是-r的别名,至少我认为是-E(扩展正则表达式).它在某些时候发生了变化吗?看起来它可能仍然支持向后兼容,或者不支持?

另外,听起来像sed中的扩展正则表达式与parens中的管道字符之类的范围无关,那么为什么没有这些标志(-E,-r)的替换工作呢?

anu*_*ava 5

  1. -E-r你的sed版本的别名,即extended regex support
  2. 没有extended regex支持,square brackets匹配literal parentheses不适用于正则表达式分组.