sed命令能够帮助你搜索一个单词或文本模式出现的位置,然后对其进行一些操作。这个命令的名字是stream editor的缩写,因为它的概念与流编辑器相同。从其最基本的形式来说,sed命令与Windows系统中查找和替换功能执行一样的操作。
利用grep命令在snort.conf文件中查找单词mysql,如下:
可以看到,grep命令找到了两处mysql出现的位置。
假如我们想要利用sed命令将每个mysql出现的位置替换为MySQL(记住,Linux系统是对大小写敏感的),然后将新文件保存为snort2.conf。你可以通过输入如代码清单2-6所示的命令来实现。
代码清单2-6 利用sed命令来查找并替换关键字或短语
s命令实现搜索:首先需要给出待搜索的词语(mysql),然后是想要替换的词语(MySQL),两者通过一个斜线(/)分隔。g命令通知Linux系统,你想要完成全局替换操作。最后,结果保存在一个名为snort2.conf的新文件中。
现在,当利用grep命令在snort2.conf中搜索mysql时,你会发现没有找到任何结果,但是当搜索MySQL时,你将看到两处出现的位置。
如果只想替换词语mysql第一次出现的位置,那么你可以去掉结尾的g命令。
你还可以利用sed命令来查找并替换一个单词出现的任意特定位置,而不是出现的所有位置或者是仅第一次出现的位置。例如,如果只想替换单词mysql第二次出现的位置,那么直接将出现的次数(在本例中是2)放置在命令结尾即可:
该命令只影响mysql第二次出现的位置。