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

如何使用sed命令删除文本文件每行CALL之前的内容?

没问题,用sed搞定这个需求超简单!我给你几个实用的写法,你可以根据自己的具体场景来选:

1. 基础用法(单行单个CALL场景)

如果你的文件里每行只有一个CALL,或者你想保留最后一个CALL及后面的内容,直接用这个命令:

sed 's/^.*CALL/CALL/' your_file.txt

这个命令的逻辑是:用s/匹配内容/替换内容/的替换规则,^.*CALL会匹配从行首到最后一个CALL的所有字符,然后把它们替换成CALL,这样就删掉了CALL之前的所有内容,保留CALL和后面的部分。

2. 直接修改原文件

如果你不想把结果输出到终端,而是直接修改原文件,可以加-i参数(原地编辑):

# GNU sed(Linux系统)
sed -i 's/^.*CALL/CALL/' your_file.txt

# BSD sed(macOS系统),注意要加空字符串避免生成备份文件
sed -i '' 's/^.*CALL/CALL/' your_file.txt

3. 保留第一个CALL及后面所有内容

如果你的行里可能有多个CALL,想要保留第一个CALL和它后面的所有内容(包括其他CALL),可以用扩展正则的非贪婪匹配:

# GNU sed 或 BSD sed(加-E启用扩展正则)
sed -E 's/^.*?CALL/CALL/' your_file.txt

这里的.*?是非贪婪匹配,会只匹配到第一个CALL为止,不会吃掉中间的其他CALL。

预览效果小技巧

不管用哪个命令,先不带-i参数运行,结果会直接输出到终端,你可以先确认效果没问题,再用-i修改原文件。

举个实际例子:
原内容:

Preceding text CALL some content
Line with CALL first CALL second CALL last

用基础命令处理后:

CALL some content
CALL last

用非贪婪命令处理后:

CALL some content
CALL first CALL second CALL last

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:32:54