什么是 sed?
sed(Stream Editor)是 Linux/Unix 系统中用于对输入流(文件或管道)进行基本文本转换的强大工具。它常用于脚本自动化、日志分析和批量文本处理。
常用 sed 命令参数
- -n, --quiet / --silent:抑制默认输出,仅打印匹配行(配合
p命令使用)。 - -e script:添加要执行的脚本,可多次使用以组合多个操作。
- -f script-file:从指定文件中读取 sed 脚本。
- -i [suffix]:直接修改原文件(可选后缀用于备份,如
-i.bak)。 - -r / --regexp-extended:启用扩展正则表达式(GNU sed)。
- --help:显示帮助信息。
- --version:显示版本信息。
基本语法示例
# 替换每行第一个 "old" 为 "new"
sed 's/old/new/' file.txt
# 替换所有 "old" 为 "new"
sed 's/old/new/g' file.txt
# 仅显示第 5 行
sed -n '5p' file.txt
# 删除空行
sed '/^$/d' file.txt
# 原地修改并备份
sed -i.bak 's/foo/bar/g' file.txt
应用场景
- 批量替换配置文件中的关键词
- 日志文件清洗与格式化
- 自动化脚本中的文本处理环节
- 提取特定行或模式内容