2010-06-29 11 views
14

estoy trabajando en algo de código viejo y me encontré con que solía usar¿Cuál es la diferencia entre la sed -e y sed -e

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

pero ahora trato

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

Parece hacer lo mismo o no? Recuerdo que había una razón por la que lo hice, pero no recuerdo y hacer "man sed" no ayuda, ya que no tienen nada sobre -E solo -e que no tiene mucho sentido éter.

-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. 

pensé -e significaba que se correspondería con una expresión regular ...

GNU sed version 4.2.1 

Respuesta

28

desde el código fuente, -E es una opción no documentada para la compatibilidad con BSD sed.

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

Y a partir de manual, -E en BSD sed se utiliza para apoyar las expresiones regulares extendidas.

Cuestiones relacionadas