一尘不染

sed -E和sed -e有什么区别

linux

我正在处理一些旧代码,发现曾经使用过

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

但是我现在尝试

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

似乎在做同样的事情,还是这样做?我有点记得我这样做是有原因的,但是我不记得了,做“ man 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表示它将与正则表达式匹配…

GNU sed version 4.2.1

阅读 2344

收藏
2020-06-02

共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用于支持扩展的正则表达式。

2020-06-02