1.简介
Stream EDitor:流编,sed 是一种在线的、非交互式的编辑器,它一次处理一 行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往 屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除 非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的 反复操作。
2.格式
1)sed 选项 命令 文件
2)sed 选项 –f 脚本 文件
3.返回值
不报错返回均为0,无论查询的是否存在,例如把文件里的a全部换成b,但文件内容里没有a,所以输出内容为文件原本内容,返回值0。
4.sed与正则表达式
与grep一样,sed在文件中查找模式时也可以使用正则表达式(RE)和各种元字 符。正则表达式是括在斜杠间的模式,用于查找和替换,以下是sed支持的元字符。
1)使用基本元字符集 ^, $, ., *, [], [^], < >,(),{}
2)使用扩展元字符集 ?, +, |, ( )
3)使用扩展元字符的方式:
+ //转义
sed -r //加-r
5.参数
删除:d
[root@cheng ~]#cat passwd
root:x:0:0:root:/root:/bin/bash1
bin:x:1:1:bin:/bin:/sbin/nologin2
daemon:x:2:2:daemon:/sbin:/sbin/nologin3
adm:x:3:4:adm:/var/adm:/sbin/nologin4
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin5
sync:x:5:0:sync:/sbin:/bin/sync6
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown7
halt:x:7:0:halt:/sbin:/sbin/halt8
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin9
operator:x:11:0:operator:/aofa:/sbin/nologin10
[root@cheng ~]#sed -r '3,$d' passwd //删除第三行到最后一行
root:x:0:0:root:/root:/bin/bash1
bin:x:1:1:bin:/bin:/sbin/nologin2
[root@cheng ~]#sed -r '/root/d' passwd //删除带有root的行
bin:x:1:1:bin:/bin:/sbin/nologin2
daemon:x:2:2:daemon:/sbin:/sbin/nologin3
adm:x:3:4:adm:/var/adm:/sbin/nologin4
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin5
sync:x:5:0:sync:/sbin:/bin/sync6
shutdown:x:6:0:shutdown:/sbin:/sbin/shutd