sed删除含关键词的行用/关键词/d,支持精确匹配^key$、多关键词key1\|key2、忽略大小写/key/id及转义特殊字符。

用 sed 删除包含特定关键词的行,核心命令是 sed '/关键词/d',它会匹配含该关键词的整行并删除。
基础用法:直接删除匹配行
假设文件 example.txt 中有以下内容:
banana
cherry
apple pie
orange
执行:
sed '/apple/d' example.txt
输出为:
cherry
orange
注意:原文件不会被修改,仅在终端显示结果。如需保存到新文件,加重定向:sed '/apple/d' example.txt > new.txt;如需直接修改原文件,用 -i 选项(慎用):sed -i '/apple/d' example.txt。
精确匹配整行(避免误删)
上面命令会删掉含 "apple" 的任意位置的行(如 "apple pie")。若只想删**整行完全等于** "apple" 的行,用锚点 ^ 和 $:
-
sed '/^apple$/d' example.txt→ 只删单独一行写 "apple" 的行,保留 "apple pie" - 多个关键词用
\|(或)连接:sed '/^apple$\|^banana$/d' example.txt
忽略大小写删除
添加 i 标志即可不区分大小写:
-
sed '/apple/id' example.txt→ 同时删 "apple"、"Apple"、"APPLE" - 和锚点组合:
sed '/^apple$/id' example.txt→ 精确匹配且忽略大小写
处理特殊字符(如斜杠、点号)
如果关键词含 /、.、* 等正则元字符,需转义或换分隔符:
- 关键词是
file/path:用sed '\#file/path#d' file.txt(改用#当分隔符,避免写一堆\/) - 关键词是
price: $10:转义美元符号和点号:sed 's/price: \$10//g'(这是替换,删除用/price: \$10/d)


















