sed介绍正则表达式
sed(stream editor)是一种非交互式的流编辑器,经过多种转换修改流经它的文本。默认状况下,sed不会改变原文件自己,而只是对流经sed命令的文本进行修改,并将修改后的结果打印到标准输出中。编辑器
sed处理文本时是以行为单位的,每处理完一行就当即打印出来,而后再处理下一行,直至全文处理结束。sed可作编辑动做包括删除、查找替换、添加、插入、从其余文件读入数据等。ide
sed命令使用的场景包括如下一些:spa
常规编辑器编辑困难的文本。it
太过庞大的文本,使用常规编辑器难以胜任(如vi一个几百兆的文件)。模板
有规律的文本修改,加快文本处理速度(好比说全文替换)。class
sed命令的功能十分强大,因为sed自己的复杂度,以及和正则表达式的结合,使用sed命令很是难以掌握。只有不断的多读用,才能深入的理解和记住sed的功能。stream
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 直接修改原文件