一、sed基本用法

1)sedstream editor)是流编辑器,可对文本文件和标准输入进行编辑。

sed只是对缓冲区中原始文件的副本进行编辑,并不编辑原始的文件,如果需要保存改动内容,可以选择使用下面两种方法:

             重定向

             w编辑命令

2)调用sed有三种方法:

              在Shell命令行输入命令调用sed,格式为:

                          sed [选项] ‘sed命令’ 输入文件

             将sed命令插入脚本文件后,然后通过sed命令调用它,格式为:

                         sed [选项] -f sed脚本文件输入文件

              将sed命令插入脚本文件后,最常用的方法是设置该脚本文件为可执行,然后直接执行该脚本文件,格式为:

                         ./sed脚本文件输入文件

               第二种方法脚本文件的首行不以#!/bin/sed –f开头;第三种方法脚本文件的首行是#!/bin/sed –f

               推荐使用第一种方法和第三种方法

二、sed命令选项

sed命令基础

1)默认情况,sed处理完文本将输入文件打印到标准输出;一旦加上-n选项,sed就不再打印输入文件,而只打印处理结果

sed命令基础   

例: 这里打印第一行

2)当向sed命令传递多个编辑命令时,在每个编辑命令前需要加上-e选项

sed命令基础
 

例:这里分别把第一行,和第3-4行打印出来了。

Sed文本定位方法

sed命令基础

sed编辑命令

sed命令基础

3)sed文本定位

追加文本:匹配行后面插入

sed命令基础   

例:在b下面追加一行e

插入文本:匹配行前面插入

sed命令基础

例:i的参数是在b的前面插入行e,所以a参数实在后面插入,i实在前面插入

删除文本:将指定行或指定行范围进行删除

sed命令基础

例:d参数删除12

修改文本:将所匹配的文本行利用新文本替代

sed命令基础

例:将c替换成fs表示是文件中所有的都替换。

 

4)sed替换文本操作将所匹配的文本行利用新文本替换,替换文本与修改文本功能有相似之处,它们之间的区别在于:替换文本可以替换一个字符串,而修改文本是对整行进行修改

替换文本的格式为:

s/被替换的字符串/新字符串/[替换选项] 

默认情况下,sed s命令将替换后的全部文本都输出,如果要求只打印替换行,需要结合使用-np选项,命令格式如下:

sed -n ‘s/被替换的字符串/新字符串/p’ 输入文件

w选项后加文件名表示将输出定向到这个文件,与sed编辑命令中的w是不矛盾的

sed命令基础

例:将add中的c替换成f并指显示被替换的行,并保存给other

既然能保持成别的文件,当然也可以读入其他文件

sed命令基础

 

例:将other的内容插入到addc行后

sed编辑命令中的{}符号可以指定在定位行上所执行的命令组,它的作用与sed-e选项类似,都是为了在定位行执行多个编辑命令

sed命令基础

例:将匹配c的行显示出来,=是并且显示行号

:前面我们已经说过sed只是对缓冲区中原始文件的副本进行编辑,并不编辑原始的文件,如果需要保存改动内容,也可以用-i的参数,但-i就不输出信息,所有当我们确定好以后在加上-i参数,例子如下:

sed命令基础