美文网首页LinuxLinux学习之路Linux系统
Linux实用工具-ed行命令编辑器

Linux实用工具-ed行命令编辑器

作者: QuietHeart | 来源:发表于2020-09-20 10:01 被阅读0次

    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
    

    不会保存。

    相关文章

      网友评论

        本文标题:Linux实用工具-ed行命令编辑器

        本文链接:https://www.haomeiwen.com/subject/mmmjyktx.html