Я работаю над некоторым старым кодом, и я нашел, что раньше использовал
sed -E 's/findText/replaceWith/g' #findText would contain a regex
но я теперь пробую
sed -e 's/findText/replaceWith/g'
Это, кажется, делает то же самое или делает это? Я отчасти не забываю там быть причиной я сделанный это, но я не могу помнить, и выполнение "человека sed" не помогает, поскольку у них ничего нет о-E только-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 означал, что будет соответствовать regex...
GNU sed version 4.2.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;
И из руководства , -E
в BSD sed используется для поддержки расширенных регулярных выражений.