sed 删除日志中含特定词的行需用 d 命令配合地址匹配:基础命令如 sed '/error/d' 不修改原文件;加 -i 可就地编辑(-i.bak 自动备份);用 \b、^、$ 实现精准匹配;多关键词可用分号、-e 或 (error|fail) 方式。

用 sed 删除日志文件中包含特定词的行,核心是使用 d 命令配合地址匹配。注意是否要修改原文件、是否区分大小写、是否支持正则等细节。
基础删除:删掉含关键词的整行
默认只打印不修改原文件,适合先预览效果:
-
sed '/error/d' logfile.log—— 删除所有含 error 的行(不区分大小写需加i标志) -
sed '/ERROR/d' logfile.log—— 区分大小写,只删大写的 ERROR
就地编辑:直接修改原文件
加 -i 参数可覆盖原文件(慎用!建议先备份):
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
-
sed -i '/timeout/d' access.log—— 直接删掉含 timeout 的行 -
sed -i.bak '/404/d' nginx.log—— 删除含 404 的行,同时生成备份nginx.log.bak
精准匹配:避免误删相似词
用边界符 \b 或锚点 ^/$ 控制匹配范围:
-
sed '/\bwarn\b/d' app.log—— 只删独立单词 warn,不删warning或warning -
sed '/^INFO:/d' log.txt—— 只删开头是 INFO: 的行 -
sed '/failed$/d' auth.log—— 只删以 failed 结尾的行
多关键词或复杂条件
用分号或 -e 连接多个删除规则:
-
sed '/debug/d;/trace/d' debug.log—— 同时删含 debug 和 trace 的行 -
sed -e '/ERROR/d' -e '/WARNING/d' system.log—— 更清晰的多条件写法 -
sed '/\(error\|fail\|timeout\)/d' app.log—— 用括号+竖线匹配多个词(需转义或加-r)
不复杂但容易忽略备份和大小写问题,实际用时先试输出再加 -i。










