什么是 sed?
sed(stream editor)是一个非交互式的文本编辑器,常用于在 Shell 脚本中对文本进行查找、替换、插入、删除等操作。它逐行读取输入,并将结果输出到标准输出,不会修改原始文件(除非使用 -i 选项)。
基本语法
sed [选项] '命令' 文件
常见选项:
-e:允许多个命令-f:从脚本文件读取命令-i:直接修改原文件-n:取消默认输出(配合p打印特定行)
常用命令示例
1. 替换文本
sed 's/旧字符串/新字符串/g' file.txt
将每行中的“旧字符串”全局替换为“新字符串”。
2. 删除行
sed '2d' file.txt # 删除第2行 sed '/pattern/d' file.txt # 删除包含 pattern 的行
3. 打印特定行
sed -n '5p' file.txt # 打印第5行 sed -n '/error/p' file.log # 打印包含 error 的行
适用场景
- 日志分析与过滤
- 批量修改配置文件
- Shell 脚本中的文本预处理
- 结合正则表达式实现复杂文本变换