Linux三剑客之sed
一.sed简介
sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
二.sed的格式
sed [参数] '处理规则' [操作对象]
三.参数
-e : 允许多项编辑 -n : 取消默认输出 -i : 就地编辑 -r : 支持拓展正则 -f : 指定sed匹配规则脚本文件
四.定位
1.数字定位法
[root@liuwang ~]# sed '3d' 100.txt
2.正则定位法
[root@liuwang ~]# sed '/^3/d' 100.txt
3.数字和正则定位法
[root@liuwang ~]# sed '3,/^g/d' 100.txt
4.正则正则定位法
[root@liuwang ~]# sed '/^r/,/^3/d' 100.txt
五.sed 编辑模式
a : 在当前行后添加一行或多行 sed '2aboyfriend' 100.txt
c :用新文本修改(替换)当前行 [root@liuwang ~]# sed '3cboyfriend' 100.txt
i : 在当前行之前,插入文本(单独使用时) [root@liuwang ~]# sed '3iboyfriend' 100.txt
r : 在文件中读内容
[root@liuwang ~]# sed '3rboyfriend' 100.txt
w : 将指定行写入文件 [root@liuwang ~]# sed '3w 7.txt' 100.txt
y : 将字符转换成另一个字符 [root@liuwang ~]# sed '2y/rewq/1111/' 100.txt
s : 将字符串转换成另一个字符串(每一行只替换一次) [root@liuwang ~]# sed 's/rewq/1111/' 100.txt
g : 全部执行 [root@liuwang ~]# sed 's/qwer/1111/g' 100.txt
i : 忽略大小写(跟 s 模式一起使用时)
& :代表前面匹配到的内容