GNU ed
命令是一个行编辑器。它被认为是标准的 Unix 文本编辑器,因为它是 Unix 的第一个文本编辑器,因此在任何 POSIX 系统上都可用(并且通常仍然可用)。在某些方面,很容易看出它是第一个,因为在许多方面,它非常简陋。与大多数其他文本编辑器不同,它不会在自己的窗口或屏幕中打开,事实上,默认情况下,它甚至不会提示用户输入。另一方面,它几乎没有任何界面也可以成为一种优势。它是一个功能性编辑器,可以通过交互方式或通过脚本使用简短的指令进行控制。
安装 ed
如果您运行的是 Linux 或 BSD,您可能已经安装了 ed
(Linux 上的 GNU ed
和 BSD 上的 BSD ed
)。但是,某些最小环境会省略 ed
,但它可能可以从您的发行版的软件仓库或端口树中获得。 MacOS 预装了 BSD ed
。
启动 ed
当您启动 ed
时,您似乎丢失了提示符,并且可能 ed
已停止。 它没有;它只是在等待您的指示
$ ed
缓冲区
当 ed
处于活动状态时,您使用所谓的缓冲区。 缓冲区是内存中的一个位置。 您不是直接编辑文件; 您只是在编辑缓冲区。 如果您在没有将更改写入磁盘上的文件的情况下退出 ed
,则所有更改都将丢失,因为它们仅发生在缓冲区中。 (对于习惯于初始暂存缓冲区的经验丰富的 Emacs 用户来说,这听起来可能很熟悉。)
使用 ed 写入文本
启动 ed
后,您处于命令模式。 这意味着您可以向编辑器发出命令。 您可以使用 a
命令将文本附加到当前缓冲区,该命令以自己一行上的单个点 (.
) 终止。 例如,此示例将两行(“hello world”和“hello ed”)添加到缓冲区
a
hello world
hello ed
.
在终止点之后,您返回到命令模式。
查看缓冲区
要查看缓冲区中包含的内容,您可以键入要查看的行或 ,p
以显示所有行。
1
hello world
2
hello ed
,p
hello world
hello ed
写入文件
假设您对文本感到满意,则可以使用 w
命令,后跟目标文件的名称,将缓冲区写入文件。
w example.txt
19
写入操作后的数字表示写入文件的字符数。
读取文件
您不必使用 ed
进行文本输入。 您还可以使用 r
命令将现有文件打开到缓冲区中
r myfile.txt
或者,您可以直接启动 ed
,后跟要加载到缓冲区中的文件名
$ ed myfile.txt
编辑缓冲区
ed
应用程序是一个文本编辑器,因此您可以使用特殊的编辑语法影响缓冲区中的文本。 sed
或 vim
的用户可能会发现它的某些语法很熟悉。 假设您在缓冲区中加载了一个文件
$ ed myfile.txt
,p
This is an example document.
There is some text, but not much.
There is some errors, but not much.
要将第一个句子中的单词“document”更改为“file”,请选择要定位的行 (1),然后使用 s
调用搜索功能,后跟您的搜索和替换词
1
This is an example document.
s/document/file/
1
This is an example file.
要定位不同的行,该过程本质上相同,但数字不同
3
There is some errors, but not much.
s/is/are/
s/much/many/
您可以像往常一样使用 ,p
命令查看对缓冲区所做的编辑。
This is an example file.
There is some text, but not much.
There are some errors, but not many.
当然,这些更改仅存在于缓冲区中。 如果您在 ed
之外查看该文件,您只会看到原始文本
$ cat myfile.txt
This is an example document.
There is some text, but not much.
There is some errors, but not much.
要将更改保存回文件,请使用 w
命令
w myfile.txt
258
清除缓冲区
要获取一个新缓冲区,以便您可以启动一个新文档或将一个新文档加载到一个新的环境中,请使用 c
命令。 在发出 c
以清除缓冲区后,打印命令不返回任何内容,因为缓冲区已被清空
c
,p
退出
要退出您的 ed
会话,请使用 q
命令。 这不会让您有机会保存缓冲区,因此请确保在使用此命令之前保存。
尝试 ed
ed
可以做更多的事情,学习 ed
可以让您更深入地了解 sed
和 vim
的部分工作原理。 诚然,我并没有费心在 ed
中尝试撰写这篇文章,并且我不确定它是否是通常情况下文本输入的最佳工具。 但是,ed
是一种出色的文本编辑器,您可以通过阅读其文档轻松学习它。 在 GNU 系统上,使用 info ed
查看手册。
1 条评论