sed(全称:Stream Editor)是 Linux 和 Unix 系统中一个非常强大的命令行文本处理工具,用于对输入流(文件或管道)中的文本进行自动化的编辑操作,如查找、替换、删除、插入等。
sed 的基本特点
- 非交互式:无需人工干预即可批量处理文本。
- 基于行处理:每次读取一行,处理完后输出结果。
- 支持正则表达式:可实现复杂的文本匹配与替换。
- 常用于 Shell 脚本中,提升自动化效率。
常见用法示例
1. 替换文本
将文件中所有 “apple” 替换为 “orange”:
sed 's/apple/orange/g' filename.txt
2. 删除包含特定字符串的行
sed '/error/d' logfile.txt
3. 在指定行前插入内容
sed '2i\New line added before line 2' data.txt
为什么叫 “流编辑器”?
因为 sed 并不直接修改原始文件(除非使用 -i 参数),而是将输入视为“数据流”,逐行读入、处理、输出,整个过程像水流一样连续不断,因此得名“流编辑器”。
小结
无论是日志分析、配置文件修改,还是批量文本处理,sed 都是系统管理员和开发者的得力助手。掌握它,能极大提升你在命令行环境下的工作效率。