ed命令

ed命令

ed命令是文本编辑器,用于文本编辑,edLinux中功能最简单的文本编辑程序,一次仅能编辑一行而非全屏幕方式的操作。ed命令并不是一个常用的命令,一般使用比较多的是vi指令,但ed文本编辑器对于编辑大文件或对于在shell脚本程序中进行文本编辑很有用。如果使用文件名参数调用ed,则文件的副本将被读入编辑器的缓冲区,对该副本进行更改,而不是直接对文件本身进行更改。退出ed后,任何未使用w命令显式保存的更改都将丢失。编辑有两种不同的模式:命令和输入。第一次调用时,ed处于命令模式,在这种模式下,命令从标准输入中读取并执行以操作编辑器缓冲区的内容。

语法

ed [options] [file]

参数

  • -G,--traditional: 在兼容模式下运行。
  • -l,--loose-exit-status: 即使命令失败,也以零状态退出(正常终止)。例如如果将ed设置为crontab的编辑器,则此选项很有用。
  • -p,--prompt=STRING: ed通常在空白行等待用户输入,此选项将使用字符串作为提示。
  • -r,--restricted: 在受限模式下运行。
  • -s,--quiet,--silent: 禁止诊断。
  • -v,--verbose: 详细操作。
  • -h,--help: 显示帮助信息。
  • -V,--version: 显示版本信息。

状态码

  • 0表示正常退出。
  • 1表示环境问题,例如文件未找到、无效标志、I/O错误等等。
  • 2表示损坏或无效的输入文件。
  • 3表示内部一致性错误(如软件bug),导致ed死机。

示例

比较完整的编辑示例。

ed
a
My name is Titan.
And I love Perl very much.
.
i
I am 24.
.
c
I am 24 years old. 
.
w readme.txt
q
ed                          # 激活 ed 命令 
a                           # 告诉 ed 我要编辑新文件 
My name is Titan.           # 输入第一行内容 
And I love Perl very much.  # 输入第二行内容 
.                           # 返回 ed 的命令行状态 
i                           # 告诉 ed 我要在最后一行之前插入内容 
I am 24.                    # 将 I am 24. 插入 My name is Titan. 和 And I love Perl very much. 之间 
.                           # 返回 ed 的命令行状态 
c                           # 告诉 ed 我要替换最后一行输入内容 
I am 24 years old.          # 将 I am 24. 替换成 I am 24 years old. ,这里替换的是最后输的内容
.                           # 返回 ed 的命令行状态 
w readme.txt                # 将文件命名为 readme.txt 并保存,如果是编辑已经存在的文件,只需要敲入 w 即可
q                           # 完全退出 ed 编辑器 
cat readme.txt
# My name is Titan.
# I am 24 years old. 
# And I love Perl very much.

每日一题

https://github.com/WindrunnerMax/EveryDay

参考

https://www.computerhope.com/unix/ued.htm
https://www.runoob.com/linux/linux-comm-ed.html
https://www.geeksforgeeks.org/ed-command-in-linux-with-examples/

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...