在 ed 中标记多行

在 ed 中标记多行

我打开了 ed 并插入了以下文本:

This text
Is a
Test

但是,当我尝试使用以下命令标记第 1-3 行时:

1,3ki

并打印它们

'ip

它只打印最后一次出现。有没有办法可以标记所有三行(即1,3)?非常感激。

答案1

一个标签只能标记一行。如果为命令提供一系列行k,则只会标记最后输入的地址,因为该k命令仅采用单个地址。

这是来自规格ed在 POSIX 标准中(我的重点):

如果向需要零地址的命令提供多于所需数量的地址,则应出错。否则,如果向命令提供的地址数量多于所需数量,首先指定的地址应被评估,然后被丢弃,直到剩余有效地址的最大数量,对于指定的命令。

k命令与标准中的命令类似(.)kx,这意味着它最多需要一个地址(默认为当前行)。

根据您想要实现的效果,您可以使用两个标签,一个用于第 1 行,另一个用于第 3 行,或者您可以将单个标签与相对于该标签的地址与命令一起使用p

因此,要么使用两个标签,

1ka
3kb
'a,'b p

或在致电时使用单一标签和相对寻址p

1ka
'a,'a+2 p

或者

3kb
'b-2,'b p

或者类似的东西

3kb
'b; -2,. p

或者

1ka
'a; .,+2 p

相关内容