在ed(编辑)

时间:2017-08-12 19:23:58

标签: regex linux unix ed

假设我已经用ed打开了一个文本文件,当前行看起来像这样:

This is sentence one. Here starts another one.

现在我想在 one. 之后添加换行符,以便以Here starts开头的新句子占据下一行。

我如何在ed?

中执行此操作

3 个答案:

答案 0 :(得分:5)

您使用s命令进行替换。格式为:

s/pattern/replacement/

要在替换中包含换行符,请使用反斜杠对其进行转义,然后按返回键:

s/one. /one.\
/

按字面意思按返回,而不是包含\r\n

答案 1 :(得分:1)

在ed:

使用以下命令
s/\. /\.\
/

请注意,有两行。

使用1,$p您将看到预期的结果。

答案 2 :(得分:1)

你可以做

t.
s/text_before/
-s/text_after/

说明

  1. t.复制该行,以获取2个连续的相同行,均包含原始文本。
  2. 将第二行更改为仅在添加的换行符之后包含所需的文本。
  3. 对于第一行,对换行符之前想要的文本执行相同的操作。

注意:“-”前缀表示对(当前寻址的)前一行执行此操作。