首页 > 代码库 > bash 编程 sed

bash 编程 sed

sed编辑器

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

命令格式

sed option script file

选项

-e script  执行多个命令

-f file        执行文件中的命令    

-n            

 

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

28_thumb

111_thumb1

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

3_thumb

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

 

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

 

image_thumb

 

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

113_thumb

210_thumb

 

更多的替换选项

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

s/pattern/replacement/flags

                      替换标记

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

                                   g       全部替换

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

                                   w file  将替换结果写入文件

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

2_thumb    

1_thumb     

 

替换所有文本出现的地方

q_thumb

 

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

14_thumb

16_thumb          

 

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

18_thumb

 

使用地址

1 数字方式的行寻址

             address命令

             address{

                           命令1

                           命令2

                            }

替换第2行

110_thumb

替换2,3行

sa_thumb

第2行到结尾的所有行

asdf_thumb

 

文本模式匹配

修改用户user 的默认shell

d_thumb

 

组合命令

11_thumb1

 

 

删除行

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

删除第三行

11_thumb

 

删除指定行到最后一行

21_thumb

 

模式匹配

c_thumb1

 

插入和附加文本

i 在指定行前面增加一行

a在指定行后面增加一行

sfds_thumb

sdfs4_thumb

 

 

插入或附加多行

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

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

1232_thumb

 

修改行

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

sdf_thumb

 

sdfsda_thumb

 

修改命令使用地址区间

sdf4_thumb

 

=  打印行号

sfd_thumb

 

dsf_thumb

 

向文件写入

w  用来向文件写入行

fsdf_thumb

 

从文件读取数据

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

sdfsaf_thumb