Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 在ED(编辑器)中的行中间插入换行符_Regex_Linux_Unix_Ed - Fatal编程技术网

Regex 在ED(编辑器)中的行中间插入换行符

Regex 在ED(编辑器)中的行中间插入换行符,regex,linux,unix,ed,Regex,Linux,Unix,Ed,假设我在ed中打开了一个文本文件,当前行如下所示: 这是第一句话。这里开始另一个 现在我想在一后面加一个新行,这样以开头的新句子在此处开始占据下一行 在ed中如何执行此操作?您可以使用s命令进行替换。格式为: s/pattern/replacement/ 要在替换中包含换行符,请使用反斜杠将其转义,然后按回车键: s/one. /one.\ / 如果您按回车键,而不是包含\r或\n请在编辑时使用以下命令: s/\. /\.\ / 请注意有两条线 使用1,$p您将看到预期的结果。您可以这样做

假设我在ed中打开了一个文本文件,当前行如下所示:

这是第一句话。这里开始另一个

现在我想在
一后面加一个新行
,这样以
开头的新句子在此处开始
占据下一行


在ed中如何执行此操作?

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

s/pattern/replacement/
要在替换中包含换行符,请使用反斜杠将其转义,然后按回车键:

s/one. /one.\
/

如果您按回车键,而不是包含
\r
\n

请在编辑时使用以下命令:

s/\. /\.\
/
请注意有两条线

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

您可以这样做

t。
s/text\u之前/
-s/text_之后/
说明

  • t.
    复制该行,以获得两个连续的相同行,两行都包含原始文本
  • 将第二行更改为仅包含添加的换行符后所需的文本
  • 对换行符前的第一行文本执行相同的操作

  • 注意:前缀“-”的意思是,对上一行(当前地址)执行此操作。

    谢谢!是的,我知道一些替代品可以。我是按照
    .s/\./\./\.\n/
    的思路思考的,但似乎\n产生了n。遗憾的是,这不能作为全局命令的一部分(
    g/../s/pattern/replacement/
    )——规范明确禁止。我有一些非常老的ed脚本可以做到这一点,但在现代eds上不起作用,我还没有找到解决方法。哇,这是一种“开箱即用”的方法,谢谢分享!