出自: http://otn.oracle.com/global/cn/pub...ulaney_sed.html
引用:使用 sed 编辑器 【程序编程相关:《利用Tripwire检测系统的完整性(】 【推荐阅读:技巧:像执行命令一样执行你的脚本】作者:emmett dulaney 【扩展信息:《利用Tripwire检测系统完整性(1】 sed 编辑器是 linux 系统管理员的工具包中最有用的资产之一, 因此,有必要彻底地了解其应用 linux 操作系统最大的一个好处是它带有各种各样的实用工具.存在如此之多不同的实用工具,几乎不可能知道并了解所有这些工具.可以简化关键情况下操作的一个实用工具是 sed.它是任何管理员的工具包中最强大的工具之一,并且可以证明它自己在关键情况下非常有价值. sed 实用工具是一个“编辑器”,但它与其它大多数编辑器不同.除了不面向屏幕之外,它还是非交互式的.这意味着您必须将要对数据执行的命令插入到命令行或要处理的脚本中.当显示它时,请忘记您在使用 microsoft word 或其它大多数编辑器时拥有的交互式编辑文件功能.sed 在一个文件(或文件集)中非交互式.并且不加询问地接收一系列的命令并执行它们.因而,它流经文本就如同水流经溪流一样,因而 sed 恰当地代表了流编辑器.它可以用来将所有出现的 "mr. smyth" 修改为 "mr. smith",或将 "tiger cub" 修改为 "wolf cub".流编辑器非常适合于执行重复的编辑,这种重复编辑如果由人工完成将花费大量的时间.其参数可能与一次性使用一个简单的操作所需的参数一样有限,或者与一个具有成千上万行要进行编辑修改的脚本文件一样复杂.sed 是 linux 与 unix 工具箱中最有用的工具之一,且使用的参数非常少. sed 的工作方式 sed 实用工具按顺序逐行将文件读入到内存中.然后,它执行为该行指定的所有操作,并在完成请求的修改之后将该行放回到内存中,以将其转储至终端.完成了这一行上的所有操作之后,它读取文件的下一行,然后重复该过程直到它完成该文件.如同前面所提到的,默认输出是将每一行的内容输出到屏幕上.在这里,开始涉及到两个重要的因素—首先,输出可以被重定向到另一文件中,以保存变化;第二,源文件(默认地)保持不被修改.sed 默认读取整个文件并对其中的每一行进行修改.不过,可以按需要将操作限制在指定的行上. 该实用工具的语法为: sed [options] [filename] 在这篇文章中,我们将浏览最常用的命令与选项,并演示它们如何工作,以及它们适于在何处使用. 替换命令 sed 实用工具以及其它任何类似的编辑器的最常用的命令之一是用一个值替换另一个值.用来实现这一目的的操作的命令部分语法是: s/{old value}/{new value}/ 因而,下面演示了如何非常简单地将 "tiger" 修改为 "wolf": $ echo the tiger cubs will meet on tuesday after school | sed s/tiger/wolf/ ... 下一页