You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用sed删除匹配模式之后的所有行(保留匹配行)

解决sed删除匹配行后所有内容但保留匹配行的问题

需求说明

需要删除文本中匹配1450/pm2-hmc2模式之后的所有行,但保留该匹配行。

原命令问题

你尝试的命令:

sed '/1450/pm2-hmc2/,$d' input.txt

会同时删除匹配行,原因是该命令定义的地址范围是「从匹配行到文件末尾」,d操作会删除这个范围内的所有行,包括匹配行本身。

正确命令

方法一:使用sed退出命令q(最简洁)

sed '/1450\/pm2-hmc2/q' input.txt
  • 原理:当sed匹配到包含1450/pm2-hmc2的行时,会先输出该行,然后执行q命令直接退出sed,后续行不再处理,自然不会被输出。

方法二:使用条件分支控制输出

如果需要更灵活的逻辑,也可以用分支命令实现:

sed '/1450\/pm2-hmc2/,$!b; //!d' input.txt
  • 解释:
    • /1450\/pm2-hmc2/,$!b:对不在「匹配行到末尾」范围内的行,直接跳过处理(输出原行)
    • //!d:对在范围内的行,仅删除非匹配行,保留匹配行

处理后结果示例

执行正确命令后,输出内容会截止到匹配行:

/root/abhishek/HPC/2023-01-03-1440/pm1-hmc1.txt
/root/abhishek/HPC/2023-01-03-1440/pm1-hmc2.txt
/root/abhishek/HPC/2023-01-03-1440/pm2-hmc0.txt
/root/abhishek/HPC/2023-01-03-1440/pm2-hmc1.txt
/root/abhishek/HPC/2023-01-03-1440/pm2-hmc2.txt
/root/abhishek/HPC/2023-01-03-1445/pm0-hmc0.txt
/root/abhishek/HPC/2023-01-03-1445/pm0-hmc1.txt
/root/abhishek/HPC/2023-01-03-1445/pm0-hmc2.txt
/root/abhishek/HPC/2023-01-03-1445/pm1-hmc0.txt
/root/abhishek/HPC/2023-01-03-1445/pm1-hmc1.txt
/root/abhishek/HPC/2023-01-03-1445/pm1-hmc2.txt
/root/abhishek/HPC/2023-01-03-1445/pm2-hmc0.txt
/root/abhishek/HPC/2023-01-03-1445/pm2-hmc1.txt
/root/abhishek/HPC/2023-01-03-1445/pm2-hmc2.txt
/root/abhishek/HPC/2023-01-03-1450/pm0-hmc0.txt
/root/abhishek/HPC/2023-01-03-1450/pm0-hmc1.txt
/root/abhishek/HPC/2023-01-03-1450/pm0-hmc2.txt
/root/abhishek/HPC/2023-01-03-1450/pm1-hmc0.txt
/root/abhishek/HPC/2023-01-03-1450/pm1-hmc1.txt
/root/abhishek/HPC/2023-01-03-1450/pm1-hmc2.txt
/root/abhishek/HPC/2023-01-03-1450/pm2-hmc0.txt
/root/abhishek/HPC/2023-01-03-1450/pm2-hmc1.txt
/root/abhishek/HPC/2023-01-03-1450/pm2-hmc2.txt

内容的提问来源于stack exchange,提问作者Punith M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 11:50:23