当前位置: 首页 > 面试题库 >

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

穆招
2023-03-14
问题内容

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

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

问题答案:

从源代码开始,-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用于支持扩展的正则表达式



 类似资料:
  • 问题内容: 我遇到了像这样的Java代码: 以上三种之间的区别是什么?它们在Java中如何称呼这种类型的类或接口声明? 问题答案: 好吧,前两个没有什么区别-它们只是为 type参数 (或)使用了不同的名称。 第三个不是有效的声明- 用作提供类型实 参 时使用的 通配符 ,例如,意味着引用某种类型的列表,但我们不知道是什么。 __ 所有这些都是 泛型 ,这是一个很大的话题。您可能希望通过以下资源了

  • 问题内容: 只想知道它们之间的主要区别是什么?以及每种语言的功能(最好使用它)。 编辑: 不是“ vs”。就像话题,只是信息。 问题答案: 在出现的顺序,语言是,,,。 该程序是一个流编辑器,旨在将脚本中的操作应用于输入文件的每一行(或更一般而言,应用于指定的行范围)。它的语言基于Unix编辑器,尽管它具有条件等,但是很难处理复杂的任务。您可以用它创造一些小奇迹- 但要花很多钱。但是,当尝试在其权

  • 问题内容: 是否要保持与旧版本(未生成)的向后兼容性?还是我缺少一个更微妙的细节?我在()中也看到了这种模式,但是归纳为。 问题答案: 之所以使用,是因为它匹配的对象不必与您传递给的对象具有相同的类型;它只要求它们相等。根据规范,如果存在这样的对象,则返回true。请注意,没有什么要求,并且必须是相同的类型。这是因为该方法接受一个as参数,而不仅仅是与该对象相同的类型。 尽管通常已经定义了许多类,

  • 3. sed sed意为流编辑器(Stream Editor),在Shell脚本和Makefile中作为过滤器使用非常普遍,也就是把前一个程序的输出引入sed的输入,经过一系列编辑命令转换为另一种格式输出。sed和vi都源于早期UNIX的ed工具,所以很多sed命令和vi的末行命令是相同的。 sed命令行的基本格式为 sed option 'script' file1 file2 ... sed

  • 流编辑器 是用来从文件读取文本或者从管道实现基本的变化。结果送到标准输出。 sed 命令的语法不指定输出文件,但是结果可以通过使用输出重定向来写入到文件中。编辑器并不改变原来的文件。 sed 和其它编辑器比如 vi 和 sed的区别在于它能够过滤来自管道的输入。在编辑器运行的时候你不要去干涉它;所以 sed常常被称作 批编辑器 。此特性允许你在脚本中使用编辑命令,极大的方便了重复性编辑任务。当面对

  • 问题内容: 我在file.txt中有以下数据: 我想将字符串替换为“-”之后的字符串,最多替换为“;” 只需加上“;”,就可以得到: 我尝试使用以下命令: 但这给了我以下错误: sed命令出现乱码 为什么会这样呢? 问题答案: 这应该工作: