ed 编辑器是 Linux 操作系统下最简单的文本编辑器。它是以行为单位对文件进行编辑不像 MS-DOS 系统下的 edit 那样是以整个屏幕框架为单位对文件进行编辑的。
ed编辑器有两个状态:
- 命令行状态: 前者接收输入的ed命令也是默认启动状态
- 编辑状态: 后者对文件以行为单位进行编辑
下面开始学习。
新建一个文件testNew
方法1,先指定文件名
输入过程如下:
$ls
$ed testNew
testNew: No such file or directory <==此处是输出,表示一个不存在的文件。
w
0 <==此处是输出,表示写了0个字符。
q
$ ls
testNew <==此处是输出,可见多了一个新的空文件。
这里, w
表示写命令, q
退出,后面会提到。如果没有 w
那么 q
之后也不会建立新的文件。
方法2,写时再指定名字
输入过程如下:
$ls
testNew <==此处是输出,只有刚才新建的文件。
$ed
w
? <==此处是输出,?表示有问题,或命令不识别或别的,此处是缺少文件名。
w
? <==此处是输出,同上。
w testNew2
0 <==此处是输出,表示写了0个字符。
q
$ls
testNew testNew2 <==此处是输出,可见多了一个新的空文件testNew2。
这里,因为是一个新文件,所以如果一直 w
且没输入文件名的话,会一直提示,直至你指定了一个文件名。如果在 w testNew2
之前按 q
将直接退出,这样也不会建立这个新文件了。
编辑已存在的文件
编辑文件 testNew
$ed testNew
0 <==此处是输出,表示读了0个字符。
这里,默认进入的是命令状态,你可以输入任何命令进行编辑文件。按 q
退出。
命令行状态常用命令
- a: 在文件的末尾添加新内容。
- i: 在文件的最后一行之前插入新内容。
- o: 把文件输入的最后一行(不论是原来存在的或者插入的)替换成新内容。
- .: 退出编辑文件模式进入命令行模式(注意:此时并没有退出 ed 编辑器)。
- w: 保存文件,如果指定一个名称表示另存为的意思,这就不改变当前文件了。
- q: 退出 ed 编辑器,如果没有w则提示?,再次q就非保存退出了。
- Q: 相当强制退出,无论保存与否。
新建一个文件并编辑的流程举例
键入ed命令
$ed
输入之后,我们进入交互界面。
编辑内容
其中我们键入如下命令(每行命令都伴有解释):
a <==输入a告诉 ed 我要编辑新文件
My name is QuietHeart. <==输入第1行内容
And I love ed very much. <==输入第2行内容
. <==输入.返回 ed 的命令行状态
i <==输入i告诉 ed 我要在最后一行之前插入内容
I am 25. <==输入,将“I am 25.”插入“My name is ...”和“And I love...”间.
. <==输入.返回 ed 的命令行状态
c <==输入c告诉 ed 我要替换最后一行输入内容
I am 25 years old. <==输入,将“I am 25.”替换成“I am 25 years old.”
.w <==输入,一个误操作,结果成了输入了。
q <==输入,由于前面一个误操作,结果成了输入了。
. <==输入.,这才返回 ed 的命令行状态,而不是前面.w
w testNew <==输入,将文件命名为“testNew”保存(如果已存在文件,只需要敲入 w否则会覆盖)
72 <==这里是输出,表示写入的字符数。
q <==输入q完全退出 ed 编辑器
查看结果
下面,我们来看看刚刚新建的文件的内容:
$cat testNew
输入之后,输出如下:
My name is QuitHeart.
I am 25 years old.
.w
q
And I love ed very much.
这里,我几乎都用到了前面给出的常用命令,我们可以了解 ed
最最简单的使用了,后面再说一些其它实用的命令。
常用的命令
打印所有行
%p
打印所有行并且显示行号
%n
打印当前行
.p
打印当前行并且显示行号
.n
跳到第3行
3
显示并切换到下一行
+
下两行则 ++
显示并切换到上一行
-
上两行则 --
退出
q
这里如果没有保存则第一次退不出去,再q就退出但没有保存。
强制退出
Q
不会保存。
网友评论