正则表达式2

sed工具和后面要介绍的awk工具能把替换的文档输出到屏幕上,sed和awk都是流式编辑器,是针对文档的行来进行操作的。

sed工具的使用

1. 匹配指定的行

创建一个sed目录,将grep目录下的passwd文件拷贝到该目录下;


sed命令的格式为:sed -n 'n'p filename,单引号内的n是一个数字,表示第几行;

-n:只显示要打印的行,不显示其他内容;

打印2到5行;打印全部则是‘1,$’;


匹配含root的行;


同样的,sed命令也支持特殊字符的用法;


sed命令加上-r选项,类似于grep -E;


sed命令加上-e选项可以实现多个行为;


sed命令匹配大小写使用命令'sed -n '/bus/'Ip test.txt';


2. 删除某些行

参数d表示删除的动作,它不仅可以删除指定的单行以及多行,而且可以删除匹配某个字符的行,还可以删除从某一行开始到文档结尾的所有行。


这里的删除只是在显示时不显示这些行,文档中的内容不会发生改变;


加上-i选项,可以删除文档中的内容;


3. 替换字符或者字符串

参数s表示替换,参数g表示本行全局替换,不加g则只替换本行出现的第一个,与vim的替换类似;

将文档的前10行,将第一段和最后一段替换位置(head 1.txt |sed -r 's/([^:]+):(.*):([^:]+)/\3:\2:\1/');


将文件中的英文字符全部删除,即替换为空;


在所有的行前面添加字符串;