> 文本处理与搜索 > ed

ed: 行编辑器

ed 是类 Unix 系统中标准的行编辑器。它用于在没有图形界面的终端中编辑文本文件,并且可以方便地用于脚本或管道中的自动化文本处理。

概述

ed 是一个强大而简洁的编辑器,专门用于逐行编辑文本文件。除了交互模式,它还可以用于脚本中的非交互式使用,非常适合自动化文本处理。

主要特点

  • 行导向编辑:一次处理一行
  • 对脚本友好:适合非交互式使用
  • 非常轻量:资源占用极少
  • POSIX 标准:默认包含在大多数 Unix/Linux 系统中

主要选项

ed 的命令行选项不多,大部分功能通过编辑器内部命令实现。

控制行为

生成的命令:

请尝试组合命令。

描述:

`ed` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

使用示例

ed 可以交互式使用,也可以通过脚本的输入重定向来使用。

创建新文件并添加文本

ed newfile.txt
a
Hello, ed!
This is a test line.
.
w
q

打开一个新文件,添加文本,然后保存并退出。

打开现有文件并查看内容

ed existing_file.txt
1,$p
q

打开一个现有文件,打印所有行,然后退出。

替换特定文本(非交互式)

echo '1,$s/old_text/new_text/g
w
q' | ed -s my_document.txt

将文件中的 'old_text' 全部替换为 'new_text' 并保存。使用 -s 选项抑制输出。

在文件末尾添加内容(非交互式)

echo '$a
New line added at the end.
.
w
q' | ed -s my_document.txt

在文件末尾添加新行并保存。

提示与注意事项

ed 的使用方式与许多现代编辑器截然不同,理解一些核心概念非常重要。

ed 使用核心概念

  • **命令模式与插入模式**:ed 默认处于命令模式,通过 `a` (append)、`i` (insert)、`c` (change) 等命令进入插入模式。在插入模式下,在单独一行输入 `.` (点) 会返回命令模式。
  • **地址指定**:命令可以应用于特定行(例如 `1` 表示第一行,`$` 表示最后一行,`.` 表示当前行)或行范围(例如 `1,$` 表示整个文件)。
  • **保存与退出**:使用 `w` 命令保存更改,使用 `q` 命令退出编辑器。不支持 `wq` 等组合命令。`Q` 会强制退出而不保存更改。
  • **查看当前行**:输入 `.` 命令会打印当前行的内容,输入 `=` 命令会打印当前行号。
  • **利用正则表达式**:与 `s` (substitute) 命令结合使用强大的正则表达式来查找和替换文本。

相同类别命令