sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的东西存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。以下介绍的是Gnu版本的Sed3.02。
历史沿革
sed是为命令行处理数据文件而构建的早期Unix命令之一,首次出现在Version 7 Unix中。它是贝尔实验室的李·E·麦克马洪于1973年至1974年开发的,基于交互式编辑器ed(“editor”,1971)和早期qed(“quick editor”,1965-66)的脚本功能。sed是最早支持正则表达式的工具之一,至今仍然用于文本处理,特别是用于替换命令。sed的语法,特别是把/用于模式匹配,把s///用于替换,起源于sed的前身ed(当时ed很常用)而且正则表达式语法影响了其他一些语言,特别是ECMAScript和Perl。GNU sed添加了一些新功能,包括文件的就地编辑。Super-sed 是sed的扩展版本,包含与Perl兼容的正则表达式。sed的另一变体minised,最初由埃里克·雷蒙通过逆向工程写成,目前由René Rebe维护。在GNU计划基于新的GNU正则表达式库编写了新版本的sed之前,GNU计划一直使用minised。当前minised包含一些BSD sed的扩展,但不像GNU sed那样功能丰富。它的优点是速度快,占用的内存少。它用于嵌入式系统,是Minix提供的sed版本。 软件介绍
sed是stream editor的缩写。是一个非交互式上下文(context)编辑器,它被设计在下列三种情况下发挥作用: