SED 手册
SedSed(Stream EDitor)为 UNIX 系统上提供将编辑工作自动化的编辑器 , 使用者无需直接编辑数据。使用者可利用 sed
所提供 20 多种不同的函数参数 , 组合(批注 )它们完成不同的编辑动作。此外 , 由于 sed 都以行为单位编辑文件 ,
故其亦是行编辑器(line editor)。
sed 是一个非交互式上下文(context)编辑器,它被设计在下列三种情况下发挥作用:
1) 编辑那些对舒适的交互式编辑而言太大的文件。
2) 在编辑命令太复杂而难于在交互模式下键入的时候编辑任何大小的文件。
3) 要在对输入的一趟扫描中有效的进行多个‘全局’(global)编辑函数。
因为每次只把输入的某些行驻留在内存中,并且不使用临时文件,所以可编辑的文件的有效大小,只受限于输入和输出
要同时共存于次级存储的要求。
可以单独的建立复杂的编辑脚本并作为给 sed 的命令文件。对于复杂的编辑,这节省了可观的键入和随之而来的错误。
从命令文件运行 sed 高效于作者所知道的任何交互式编辑器,甚至包括能用预先写好的脚本驱动的编辑器。
相较于交互式编辑器而言,根本性的损失是缺乏相对地址(由于操作是每次一行的),和缺乏对命令如期运行的立即验证。
sed 是 UNIX 编辑器 ed 的直系后代。由于在交互式和非交互式操作之间的差异,在 ed 和 sed 之间已经有了可观的
变化;
甚至 ed 的惯常用户都会经常感到惊讶(并可能气愤),
如果他们没有阅读本文档的章节 2 和 3,
就草率的使用 sed
的话。在两个编辑器之间最显著的家族性共同之处,在于他们所识别的模式(‘正则表达式’)的种类;匹配模式的代码可以
从 ed 的代码几乎原封不动的复制过来,
在章节 2 中对正则表达式的描述就是从 UNIX Programmer’s Manual 几乎原
封不动的复制过来的。(代码和描述都是 Dennis M. Ritchie 写的)。
页:
[1]