sed精准删除含关键字整行用/pattern/d语法:sed '/关键字/d'文件预览,sed -i '/关键字/d'文件修改原文件;可用^关键字$、\b关键字\b或-r'(^| )关键字( |$)'提升精准度;支持/i忽略大小写、/k1\|k2\|k3/d删多关键字;操作前建议先预览或加.bak备份。

用 sed 精准删除含特定关键字的整行,核心是用 /pattern/d 语法,其中 pattern 是正则表达式,d 表示删除匹配行。
基础写法:删除包含关键字的整行
最常用命令格式:
-
sed '/关键字/d' 文件名—— 仅显示结果,不改原文件 -
sed -i '/关键字/d' 文件名—— 直接修改原文件(慎用,建议先备份)
例如:删除 config.txt 中所有含 debug 的行:
sed -i '/debug/d' config.txt
提升精准度:避免误删
关键字可能作为子串出现在其他词中(如删 log 却删掉了 logging),可通过锚点和边界控制匹配范围:
- 只匹配整行为关键字:
sed '/^关键字$/d'(前后无其他字符) - 匹配单词独立出现(前后是空格或行首/行尾):
sed '/\/d'(GNU sed 支持\ 和 <code>\>表示单词边界) - 用扩展正则更清晰:
sed -r '/(^| )关键字( |$)/d'(需加-r选项)
比如删掉单独成词的 test,但保留 testing 或 mytest:
sed -i '\btest\b/d' script.sh
区分大小写与多关键字处理
默认区分大小写。如需忽略大小写,加 i 标志:
-
sed -i '/error/i d' log.txt—— 删除含error、Error、ERROR等的所有行 - 删多个不同关键字(用分号分隔):
sed -i '/keyword1/d; /keyword2/d; /keyword3/d' file - 或用 \| 表示“或”:
sed -i '/keyword1\|keyword2\|keyword3/d' file(GNU sed,普通 sed 需转义 \|)
安全操作建议
执行前务必验证效果,避免误删:
- 先不加
-i运行,看输出是否符合预期:sed '/target/d' file - 加
-i.bak自动备份原文件:sed -i.bak '/target/d' file(生成file.bak) - 对关键配置文件,建议先复制测试:
cp file file.test && sed -i '/target/d' file.test











