一、简介
- 一种新型的,非交互式编辑器(vi编辑器为交互式)
- 没有破坏性,不会修改文件
- 默认输出到屏幕
- sed适合应用到shell脚本程序,处理增删改查
二、工作过程
1.从文件中读入一行数据并把它保存在临时缓冲区中
2.处理临时缓冲区的内容,并将结果发送到显示器上
3.逐行处理文件所有内容直到最后一行
三、命令
sed [选项] '脚本' 文件
-n 安静模式 一般情况文件中所有行被打印到屏幕,加上后只打印被sed处理过的行
-i 进入交互模式 文本会被修改
-e 多重编辑选项
-f 指定一个sed脚本文件到命令行执行
-r sed使用扩展正则表达式
-l 直接修改文档读取的内容,不在屏幕上输出
sed 's/A/you/' file 将文件中A换成you,输出整个文档
sed -n 's/A/you/p' file 只显示被修改过的行
sed -e '1i ZS 90 85 B' -e '/FC/d' file
在第一行前增加一行2S 90 85 B,然后删除包含字符串"FC"的行
sed "na text" file 在第n行后追加text
sed "ni text" file 在第n行前追加text
四、脚本
sed [选项] '脚本' 文件
地址定位:用于确定处理哪些行
单地址:n,指定的行 sed '3s/A/you/' file 第三行A替换成you
地址范围:
n1,n2 n1到n2行的数据处理
n1,+n2 n1后的n2行的数据处理
/pat1/,pat2/ pat1模式开始到模式pat2结束之间的行
sed '/c/,/a/ s/A/you/' file 将/c/和/a/之间的A用you替换
n1,/pat1/ n1开始到模式pat1所在的行结束
/pat/ 模式pat匹配的所有行
~:步进,1~2,从第一行开始每隔两行,即奇数行
sed '1~2 s/A/you/' file 奇数行中A被you替换
2~2,从第二行开始每隔两行,即偶数行
不给地址:即对整个文档处理