什么是 sed?
sed(Stream Editor)是 Unix/Linux 系统中用于对输入流(文件或管道)进行基本文本转换的非交互式编辑器。它常用于自动化脚本中进行查找、替换、插入、删除等操作。
基本语法
sed [选项] '命令' 文件
例如:
sed 's/old/new/g' filename.txt
常用选项
-e:允许多个命令-i:直接修改文件内容(慎用)-n:禁止自动打印模式空间内容-f:从脚本文件中读取命令
常用命令示例
1. 替换文本
sed 's/foo/bar/' file.txt # 替换每行第一个 foo
sed 's/foo/bar/g' file.txt # 全局替换 foo 为 bar
2. 删除行
sed '2d' file.txt # 删除第2行
sed '/pattern/d' file.txt # 删除包含 pattern 的行
3. 打印特定行
sed -n '5p' file.txt # 打印第5行
sed -n '/error/p' file.txt # 打印包含 error 的行
小贴士
使用 -i.bak 可在修改前自动备份原文件,例如:
sed -i.bak 's/old/new/g' file.txt