sed介绍

sed(stream editor)是一种非交互式的流编辑器,通过多种转换修改流经它的文本。默认情况下,sed不会改变原文件本身,而只是对流经sed命令的文本进行修改,并将修改后的结果打印到标准输出中。

sed处理文本时是以行为单位的,每处理完一行就立即打印出来,然后再处理下一行,直至全文处理结束。sed可做编辑动作包括删除、查找替换、添加、插入、从其他文件读入数据等。

 

sed命令使用的场景包括以下一些:

常规编辑器编辑困难的文本。

太过庞大的文本,使用常规编辑器难以胜任(如vi一个几百兆的文件)。

有规律的文本修改,加快文本处理速度(比如说全文替换)。

 

sed命令的功能十分强大,由于sed本身的复杂度,以及和正则表达式的结合,使用sed命令非常难以掌握。只有不断的多读用,才能深刻的理解和记住sed的功能。

 

sed常用的命令:

sed命令    作用    

a    在匹配行后面加入文本    

c    字符转换    

d    删除行    

D    删除第一行    

i    在匹配行前面接入文本    

h   复制模板块的内容到存储空间    

H    追加模板块的内容到存储空间    

g    将存储空间的内容复制到模式空间    

G    将存储空间的内容追加到模式空间    

n    读取下一个输入行,用下一个命令处理新的行    

N    追加下一个输入行到模板块后并在二者间插入新行    

p    打印匹配的行    

P    打印匹配的第一行    

q    退出sed    

r    从外部文件中读取文本    

w    追加写文件    

!    匹配的逆    

s/old/new    用new替换正则表达式old    

=    打印当前行号    

 

 

sed常用的参数:

sed参数    作用    

-e    多条件编辑    

-h    帮助信息    

-n    不输出不匹配的行    

-f    指定sed脚本    

-V    版本信息    

-i    直接修改原文件