概述
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) 命令结合使用强大的正则表达式来查找和替换文本。