sed编辑器

                流编辑器 可以基于输入到命令行的或是存储在命令文件中的命令来处理数据流中的数据,它每次从输入中读取一行,用提供的编辑命令匹配数据,按命令中指定的方式修改流中的数据,然后将生成的数据输出到STDOUT。默认所有来着STDIN的数据,都会输出的屏幕上,-n 选项 只要经常sed处理的哪一行才会输出到STDOUT上。

命令格式

sed option script file

选项

-e script  执行多个命令

-f file        执行文件中的命令    

-n            

 

1 在命令行定义编辑器命令

bash 编程 sed_第1张图片

bash 编程 sed_第2张图片

2在命令行中使用多个编辑命令

bash 编程 sed_第3张图片

命令之间用分号分隔,命令末尾和分号之间不可以有空格。

 

也可以使用bash shell中的次提示符来分隔命令,而不用分号。只要输入第一个单引号来开始编写,bash会提示输入更多的命令,直到你输入封尾的单引号。

 

bash 编程 sed_第4张图片

 

3 从文件中读取编辑器命令

bash 编程 sed_第5张图片

bash 编程 sed_第6张图片

 

更多的替换选项

默认只替换每行中出现的第一处

s/pattern/replacement/flags

                      替换标记

                                    数字 表明新文本替换第几处模式匹配的地方

                                   g       全部替换

                                   p      原来行的内容要打印出来  通常会与 –n 选项一起使用

                                   w file  将替换结果写入文件

sed编辑器只替换第二次匹配的模式

2_thumb    

1_thumb     

 

替换所有文本出现的地方

q_thumb

 

p 标记  和 –n 选项一起使用只输出修改过的行

bash 编程 sed_第7张图片

16_thumb          

 

w标记  将输出结果保存在指定文件

bash 编程 sed_第8张图片

 

使用地址

1 数字方式的行寻址

             address命令

             address{

                           命令1

                           命令2

                            }

替换第2行

bash 编程 sed_第9张图片

替换2,3行

bash 编程 sed_第10张图片

第2行到结尾的所有行

bash 编程 sed_第11张图片

 

文本模式匹配

修改用户user 的默认shell

bash 编程 sed_第12张图片

 

组合命令

bash 编程 sed_第13张图片

 

 

删除行

删除命令d,会删除匹配指定寻址模式的所有行

删除第三行

bash 编程 sed_第14张图片

 

删除指定行到最后一行

21_thumb

 

模式匹配

bash 编程 sed_第15张图片

 

插入和附加文本

i 在指定行前面增加一行

a在指定行后面增加一行

bash 编程 sed_第16张图片

bash 编程 sed_第17张图片

 

 

插入或附加多行

1在每一行结尾使用 \n 再输入下一行

2每一行使用\ 进入下一行

bash 编程 sed_第18张图片

 

修改行

c 允许修改数据流中整行的文件的内容

bash 编程 sed_第19张图片

 

bash 编程 sed_第20张图片

 

修改命令使用地址区间

bash 编程 sed_第21张图片

 

=  打印行号

bash 编程 sed_第22张图片

 

bash 编程 sed_第23张图片

 

向文件写入

w  用来向文件写入行

bash 编程 sed_第24张图片

 

从文件读取数据

r 允许将一个独立文件中的数据插入到数据流中

bash 编程 sed_第25张图片