什么是 sed?
sed(Stream Editor)是一个非交互式的文本处理工具,常用于在 Shell 脚本中对文本进行查找、替换、删除、插入等操作。它逐行读取输入流(文件或标准输入),处理后输出到标准输出。
基本语法
sed [选项] '命令' 文件名
例如:
sed 's/old/new/g' file.txt
将 file.txt 中所有 "old" 替换为 "new"。
常用选项
-e script:添加要执行的脚本-f scriptfile:从文件中读取脚本-i:直接修改原文件(慎用)-n:静默模式,只打印匹配行
常用命令
s:替换(如s/pattern/replacement/flags)d:删除匹配行p:打印匹配行(需配合-n)a\:在匹配行后追加文本i\:在匹配行前插入文本
实战示例
1. 替换每行第一个匹配项
sed 's/foo/bar/' input.txt
2. 全局替换
sed 's/foo/bar/g' input.txt
3. 删除空行
sed '/^$/d' input.txt
4. 打印包含特定字符串的行
sed -n '/error/p' log.txt
小贴士
sed 支持正则表达式,结合 -r(或 -E)可启用扩展正则语法,提升灵活性。