1.9 KiB
1.9 KiB
1、sed 概览
sed 是 Linux 中非常常见的流编辑器(stream editor),它会按行读取输入内容,然后对文本进行处理。
常见用途:
- 文本替换
- 删除指定行
- 打印指定范围内容
- 批量修改配置文件
2、基本特点
可以这样理解 sed:
- 从文件或标准输入中逐行读取内容
- 对每一行按规则处理
- 默认把处理结果输出到标准输出
如果想直接修改原文件,通常需要使用 -i。
3、常见选项
-r:使用扩展正则表达式-i:直接修改文件内容-n:默认不输出,常配合p使用
4、最常见的替换命令
基本格式:
sed 's/旧内容/新内容/修饰符' 文件名
其中:
s:表示 substitute(替换)g:表示行内全局替换
4.1 替换每行第一个匹配项
sed 's/root/admin/' file.txt
4.2 替换每行所有匹配项
sed 's/root/admin/g' file.txt
4.3 直接修改原文件
sed -i 's/root/admin/g' file.txt
5、常见示例
5.1 打印指定行
sed -n '1,5p' /etc/passwd
表示只打印第 1 到第 5 行。
5.2 删除指定行
sed '3d' file.txt
表示删除第 3 行后输出结果。
5.3 删除空行
sed '/^$/d' file.txt
5.4 替换配置项
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
这是运维里很常见的批量改配置写法。
6、实战建议
- 批量改配置时优先考虑
sed -i - 涉及正则时可结合
-r - 正式改文件前,建议先不加
-i预览结果 - 对系统配置文件做替换前,最好先备份
7、小结
sed是按行处理文本的流编辑器s/旧/新/g是最常用的替换格式-i用于直接修改文件-n常和p搭配控制输出- 它非常适合批量替换和配置修改场景