什么是sed?
sed(stream editor)是一个面向行的非交互式文本编辑器,常用于在Linux/Unix系统中对文本进行自动化处理,如查找、替换、插入、删除等操作。
基本语法
sed [选项] '命令' 文件名
例如:
sed 's/old/new/g' file.txt
常用选项
-e:允许多个命令同时执行-i:直接修改原文件(谨慎使用)-n:取消默认输出,仅打印匹配行-f:从脚本文件中读取命令
常见操作示例
1. 替换文本
sed 's/apple/orange/' file.txt # 替换每行第一个apple sed 's/apple/orange/g' file.txt # 全局替换所有apple sed 's/apple/orange/2g' file.txt # 从第2个开始全局替换
2. 删除行
sed '3d' file.txt # 删除第3行 sed '/error/d' file.txt # 删除包含error的行 sed '1,5d' file.txt # 删除1到5行
3. 插入与追加
sed '2i\New Line' file.txt # 在第2行前插入 sed '2a\New Line' file.txt # 在第2行后追加
4. 打印特定行
sed -n '5p' file.txt # 打印第5行 sed -n '/success/p' file.txt # 打印含success的行
小贴士
- 使用单引号避免shell解释特殊字符
- 配合正则表达式可实现复杂文本处理
- 测试时建议先不加
-i,确认无误后再修改原文件