Подтвердить что ты не робот

Какая разница между 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.

Я думал, что это означает, что он будет соответствовать регулярному выражению...

GNU sed version 4.2.1
4b9b3361

Ответ 1

Из исходного кода -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 используется для поддержки расширенных регулярных выражений.