sed 工作流程

在本章中,我们将探讨SED的工作原理。要熟练使用SED,必须先了解其内部原理。 SED遵循简单的工作流程:读取(Read),执行(Execute)和显示(Display)。

Stream Editor Workflow
  • Read      - SED从输入流(文件,管道或标准输入)读取一行并将其存储在其内部缓冲区中,该内部缓冲区称为模式缓冲区。

  • Execute - 将所有SED命令顺序应用到模式缓冲区。

  • Display  - 将(已修改的)内容发送到输出流。发送数据后,模式缓冲区将为空。

SED示例

让我们创建一个文本文件 quote.txt ,其中包含著名作家Paulo Coelho的信息。

$ vi quote.txt 
There is only one thing that makes a dream impossible to achieve: the fear of failure. 

为了了解SED的工作流程,让我们使用SED显示文件quote.txt的内容。本示例模拟 cat 命令。

$ sed '' quote.txt

执行以上代码后,将产生以下输出。

There is only one thing that makes a dream impossible to achieve: the fear of failure. 

在上面的示例中,quote.txt是输入文件名,并且在此之前有一对单引号表示SED命令。让我们了解其运行流程:

首先,SED从输入文件quote.txt中读取一行并将其存储在模式缓冲区中。

然后,它将SED命令应用于模式缓冲区。在上面示例,没有SED命令,因此对模式缓冲区不执行任何操作。

最后,它删除并在标准输出上打印模式缓冲区的内容。

在以下示例中,SED接受来自标准输入流的输入。

$ sed ''

执行以上代码后,将产生以下输出。

There is only one thing that makes a dream impossible to achieve: the fear of failure. 
There is only one thing that makes a dream impossible to achieve: the fear of failure.

在这里,第一行通过键盘输入,第二行是SED生成的输出。要退出SED会话,请按ctrl-D(^ D)。