简介
在本实验中,你将学习如何在类 Unix 操作系统中使用功能强大的面向行文本编辑器 ed
。ed
命令提供了一套多功能特性,可以直接从命令行编辑文本文件,使其在脚本编写和自动化任务中尤为有用。你将从探索 ed
命令的基本用法开始,包括创建新文件和处理文本。然后,你将深入研究更高级的 ed
命令用法,例如处理多个文件和使用正则表达式进行复杂的文本处理。通过本实验,你将深入了解如何利用 ed
命令在日常工作流程中高效编辑和管理文本文件。
在本实验中,你将学习如何在类 Unix 操作系统中使用功能强大的面向行文本编辑器 ed
。ed
命令提供了一套多功能特性,可以直接从命令行编辑文本文件,使其在脚本编写和自动化任务中尤为有用。你将从探索 ed
命令的基本用法开始,包括创建新文件和处理文本。然后,你将深入研究更高级的 ed
命令用法,例如处理多个文件和使用正则表达式进行复杂的文本处理。通过本实验,你将深入了解如何利用 ed
命令在日常工作流程中高效编辑和管理文本文件。
ed
命令简介在本步骤中,你将学习 ed
命令的基本用法,这是一个在类 Unix 操作系统中功能强大的面向行文本编辑器。ed
命令是一个强大的工具,可以直接从命令行编辑文本文件,特别适用于脚本编写和自动化任务。
首先,让我们检查一下 Ubuntu 22.04 Docker 容器中安装的 ed
版本:
ed --version
示例输出:
GNU ed version 1.17
ed
命令是一个面向行的文本编辑器,这意味着你通过输入命令来操作当前行或一定范围内的行。要启动 ed
编辑器,只需在终端中输入 ed
:
ed
这将打开 ed
编辑器,你现在可以输入命令来操作文本。一些基本的 ed
命令包括:
a
:在当前行后追加文本c
:更改当前行d
:删除当前行i
:在当前行前插入文本l
:列出当前行p
:打印当前行q
:退出 ed
编辑器例如,让我们创建一个名为 example.txt
的新文件并向其中添加一些文本:
ed example.txt
a
This is a sample text file.
This is the second line.
.
w
q
在这个例子中,我们:
ed
编辑器并指定文件 example.txt
a
命令追加两行文本.
)结束追加模式w
命令将更改写入文件q
命令退出 ed
编辑器现在,让我们验证文件是否已创建并包含预期的内容:
cat example.txt
示例输出:
This is a sample text file.
This is the second line.
在下一步中,你将学习如何使用 ed
命令编辑现有的文本文件。
ed
编辑文本文件在本步骤中,你将学习如何使用 ed
命令编辑现有的文本文件。
首先,让我们创建一个名为 example.txt
的新文件,并添加一些示例内容:
echo "This is the first line." > example.txt
echo "This is the second line." >> example.txt
echo "This is the third line." >> example.txt
现在,让我们在 ed
编辑器中打开 example.txt
文件:
ed example.txt
你应该会看到以下输出:
34
这个数字表示文件中的字符数。现在,让我们尝试一些基本的编辑命令:
1p
这将打印文件的第一行:
This is the first line.
要更改第一行,我们可以使用 c
(change)命令:
1c
This is the updated first line.
.
新行中的 .
表示更改结束。让我们验证更改:
1p
This is the updated first line.
2p
This is the second line.
3p
This is the third line.
要删除一行,我们可以使用 d
(delete)命令:
2d
这将删除第二行。让我们再次打印文件以查看更改:
1p
This is the updated first line.
2p
This is the third line.
最后,要保存更改并退出 ed
编辑器,我们可以使用 w
(write)和 q
(quit)命令:
w
41
q
数字 41
表示更新后文件中的字符数。
让我们通过检查 example.txt
文件的内容来验证更改:
cat example.txt
示例输出:
This is the updated first line.
This is the third line.
在下一步中,你将学习更高级的 ed
命令用法。
ed
命令用法在本步骤中,你将学习 ed
命令的一些更高级用法,包括搜索、替换以及处理多个文件。
首先,让我们创建另一个名为 example2.txt
的文件,并添加一些示例内容:
echo "This is the first line of example2.txt." > example2.txt
echo "This is the second line of example2.txt." >> example2.txt
echo "This is the third line of example2.txt." >> example2.txt
现在,让我们在 ed
编辑器中同时打开 example.txt
和 example2.txt
:
ed example.txt example2.txt
你应该会看到以下输出:
41
41
这表示两个文件都已成功在 ed
编辑器中打开。
要在文件之间切换,你可以使用 f
(file)命令:
f example.txt
1p
This is the updated first line.
f example2.txt
1p
This is the first line of example2.txt.
要在当前文件中搜索某个模式,可以使用 ?pattern?
命令。例如,在当前文件中搜索单词 "line":
?line?
This is the updated first line.
This is the third line.
这将打印所有包含单词 "line" 的行。
要将某个模式替换为新字符串,可以使用 s/pattern/replacement/
命令。例如,将当前文件中所有 "line" 替换为 "sentence":
g/line/s//sentence/p
This is the updated first sentence.
This is the third sentence.
g
命令用于全局执行替换(在所有匹配的行上)。
最后,让我们尝试将 example2.txt
的内容追加到 example.txt
中:
f example.txt
$a
$(cat example2.txt)
.
w
q
这将把 example2.txt
的内容追加到 example.txt
的末尾。
让我们验证更改:
cat example.txt
示例输出:
This is the updated first line.
This is the third line.
This is the first line of example2.txt.
This is the second line of example2.txt.
This is the third line of example2.txt.
恭喜!你现在已经学习了 ed
命令的高级用法,包括处理多个文件、搜索和替换。
在本实验中,你学习了 ed
命令的基本用法,这是一个在类 Unix 操作系统中功能强大的面向行文本编辑器。你首先检查了 Ubuntu 22.04 Docker 容器中安装的 ed
版本,然后探索了 ed
编辑器中可用的各种命令,例如 a
用于追加文本、c
用于更改当前行、d
用于删除当前行、i
用于插入文本、l
用于列出当前行、p
用于打印当前行,以及 q
用于退出编辑器。接着,你创建了一个名为 example.txt
的新文件,并使用 ed
命令向其中添加了一些文本。最后,你学习了如何使用 ed
命令编辑现有的文本文件。