2010-06-29 151 views
14

我工作的一些旧的代码,我发现,我用请告诉我和SED -E之间的区别的sed -e

sed -E 's/findText/replaceWith/g' #findText would contain a regex 

,但我现在尝试

sed -e 's/findText/replaceWith/g' 

似乎做同样的事,还是做? 我还记得有一个原因,我做了它,但我不记得,做“man sed”没有帮助,因为他们没有任何关于-E只有 - é这没有太大的意义以太。

-e, --expression=script 
    Append the editing commands in script to the end of 
    the editing command script. script may contain more 
    than one newline separated command. 

我认为-e意味着它会匹配正则表达式...

GNU sed version 4.2.1 

回答

28

从源代码,-E是与BSD兼容性sed的一个未公开的选项。

/* Undocumented, for compatibility with BSD sed. */ 
case 'E': 
case 'r': 
    if (extended_regexp_flags) 
    usage(4); 
    extended_regexp_flags = REG_EXTENDED; 
    break; 

而且从manual-E在BSD sed的用于支持扩展的正则表达式。

相关问题