-e标志为sed

时间:2013-10-17 19:37:04

标签: regex sed

我似乎记得sed启用扩展正则表达式的 -E 标志,然后查看今天的手册页我发现它不存在,但是

echo development.properties | sed -E 's/(development.|staging.|qa.|production.)//'

属性

echo development.properties | sed 's/(development.|staging.|qa.|production.)//'

development.properties

echo development.properties | sed -r 's/(development.|staging.|qa.|production.)//'

属性

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

此外,它听起来像sed has nothing to do中的扩展正则表达式,其范围像parens中的管道字符,所以为什么没有这些标志的替换工作( -E -r )?

1 个答案:

答案 0 :(得分:5)

  1. -E是您的sed版本中-r的别名,即extended regex support
  2. 如果没有extended regex支持,则square bracketsliteral parentheses匹配,而不是正则表达式分组。