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

使用sed替换文本遇问题:用file2内容替换file1的text1失败

解决sed替换文本为外部文件内容的问题

哈哈,我懂你遇到的问题了!你用的/r选项其实不是用来替换的,它的作用是找到匹配text1的行之后,把file2.txt的内容追加到这一行的后面,而不是把text1本身替换掉——这就是为什么你会看到ZZZZ text1 100的原因:原来的text1还留在行里,只是后面多了file2里的100。

要实现把text1替换成file2.txt的内容,你需要用sed的替换命令s,同时把file2的内容读进来作为替换值,具体命令如下:

sed -e "s/text1/$(cat file2.txt)/" file1.txt > new.txt

命令细节解释:

  • s/text1/替换内容/:这是sed的核心替换语法,会匹配每行里的text1,并把它替换成后面的内容。
  • $(cat file2.txt):这是shell的命令替换语法,会先执行cat file2.txt读取file2的内容,把结果直接作为替换值传入sed的命令中。

特殊场景处理:

如果file2.txt里的内容包含斜杠/(比如内容是10/20),上面的命令会报错,因为sed默认用斜杠作为替换语法的分隔符。这时候可以换一个分隔符,比如#或者@:

sed -e "s#text1#$(cat file2.txt)#" file1.txt > new.txt

这样执行后,你就能得到预期的ZZZZ 100结果啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:21:55