很多 Shell 脚本的工作都从通过 grep 或 egrep 取出所需的文本开始。正则表达式查找的最初结果,往往就成了要拿来做进一步处理的“原始数据”。通常,文本替换至少需要做意见事,就是将一些字以另一些字取代,或者是删除匹配行的某个部分。
一般来说,执行文本替换的正确程序应该是 sed--流编辑器(Stream Editor)。sed 的设计就是用来以批处理的方式而不是交互的方式来编辑文件。当你知道要做好几个变更--不管是对一个韩式数个文件时,比较简单的方式是将这些变更部分写到一个编辑的脚本里,再将此脚本应用到所有必须修改的文件。sed 存在的目的就在这里(虽然你也可以使用 sed 或 ex 编辑脚本,但用它们来处理会比较麻烦,而且用户通常不会记得要存储原先的文件)。
我们发现,在Shell脚本里,sed 主要用于一些简单的文本替换,所以我们先从它开始。接下来我们还会提供其他的后台数据,并说明 sed 的功能。