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

Unix行内字符串提取问题:sed命令未返回预期结果

问题分析与解决

你的sed命令出错的核心原因是用错了操作指令:你用的/pattern/d是删除整个匹配到该模式的行,但你实际想要的是删除行内从vertical到]的部分,而不是删掉整行。

错误命令拆解

sed '/\bvertical.*\]/d' file_name

这个命令的逻辑是:找到所有包含vertical到]这段内容的行,然后把整行都删掉,完全偏离了“修改行内内容保留首尾部分”的需求。

正确的解决方案

你需要使用sed的替换指令s/pattern/replacement/,匹配行内需要删除的片段,将其替换为空字符串。具体命令如下:

sed 's/\bvertical.*\]//' file_name

执行后你会发现code_name:00:12和29.05.2018之间有两个空格(原内容中]后面的空格会被保留),如果想要更干净的输出,可以调整正则,把]后面的空格也纳入匹配范围:

sed 's/\bvertical.*\] //' file_name

验证效果

假设你的文件内容是:

code_name:00:12 vertical 01 1.3489:27 vsftypyre.01 [91.02.01.6] 29.05.2018 {1705}

执行第二个命令后,输出就是你期望的:

code_name:00:12 29.05.2018 {1705}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:54:55