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

如何用sed仅替换STRING1与STRING2之间的STRING3?

使用sed仅替换指定文本区间内的特定字符串

直接用以下sed命令就能实现需求:

sed '/^aaa/,/^ddd/s/^ccc/xxx/' your_file.txt

命令说明

  • /^aaa/,/^ddd/:划定处理的行范围——从以aaa开头的行起,到以ddd开头的行结束(该范围包含首尾行之间的所有内容,但仅对匹配替换规则的行生效)
  • s/^ccc/xxx/:在上述范围内,把以ccc开头的行替换为xxx开头。如果需要替换行内任意位置的ccc,可以改成s/ccc/xxx/g(g表示全局替换该行内所有匹配项)

效果验证

输入文件内容:

aaa 12
bbb 23
ccc 34
ddd 45
eee 56
ccc 67

执行命令后输出:

aaa 12
bbb 23
xxx 34
ddd 45
eee 56
ccc 67

变量适配写法

如果需要通过变量动态定义匹配和替换内容,可以用:

STRING1="aaa"
STRING2="ddd"
STRING3="ccc"
REPLACE="xxx"
sed "/^$STRING1/,/^$STRING2/s/^$STRING3/$REPLACE/" your_file.txt

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 09:35:23