sed介绍
sed是Stream Editor (流编辑器) 的缩写,简称流编辑器;
用来处理文件的。
sed是一行一行读取文件内容并按照需求进行处理,把处理后的结构输出到屏幕。
首先sed读取文件中的一行内容,把其保存在一个临时缓存区中(也叫模式空间),
然根据需求处理临时缓冲区的行,完成后把该行发送到频幕上,由于sed把每一行
都存在临时缓存区,对这个副本进行编辑,所以不会直接修改源文件。
sed主要用来自动编辑一个或多个文件;简化对文件的反复操作,
对文件进行过滤和转换操作。
sed使用方法介绍
1.命令行格式
语法格式:
sed [选项] '处理动作' 文件名
常见选项:
-e 进行多次编辑
-n 取消默认输出
-r 使用扩展正则表达式
-i 原地编辑(修改源文件)
-f 指定sed脚本的文件名
常见的处理动作:
'p' 打印
'i' 在指定行之前插入内容
'a' 在指定行之后插入内容
'c' 替换制定行所有内容
'd' 删除指定行
1)对文件进行增删改查操作
语法:
sed 选项 '定位+命令' 需要处理文件
- 对文件进行搜索替换操作
语法:
sed 选项 's/搜索的内容/替换的内容/动作' 需要处理的文件
s 表示search搜索;斜杠表示分隔符,可以自己定义;动作一般是打印p和全局替换g
3) 其他命令
r 从另外文件中读取内容
w 内容另存为
& 保存查找串以便在替换中引用
= 打印行号
! 对所选行以外的所有行应用命令,放在行数之后
q 退出
- 其他选项
-e 多项编辑
-r 扩展正则
-i 修改源文件(慎用)
5)sed结合正则使用
/key/ 查询包含关键字的
/key1/,/key2/ 匹配包含关键字之间的行
/key/,x 从匹配关键字的行开始到文件的第x行之间的行
x,/key/
x,y! 不包含x到y行
/key/! 不包含关键字的行
2.脚本格式
脚本的第一行写上:
#!/bin/sed -f
3,5d
s/root/hello/g
1i111
2i222
3a333
p
用法:
sed -f 脚本文件 要处理的文件