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

如何用sed在bash中为引号内文本开头添加指定内容?

使用sed在引号内开头添加指定内容

没问题,这事儿用sed就能轻松搞定!针对你要把test="testabc"改成test="quiz testabc"的需求,这里有几个实用的sed命令方案:

直接处理字符串

如果你只是想快速测试效果,可以用管道把目标字符串传给sed:

echo 'test="testabc"' | sed 's/"\([^"]*\)"/"quiz \1"/'

执行后就会输出:test="quiz testabc"

原地修改文件

如果要修改文件里的内容(比如你的文件叫config.txt),可以用-i参数实现原地修改(修改后直接覆盖原文件):

sed -i 's/"\([^"]*\)"/"quiz \1"/' config.txt

命令拆解说明

咱们把核心替换逻辑拆开讲,方便你理解:

  • s/old/new/:这是sed的基础替换语法,用来把匹配到的old内容替换成new
  • ":精准匹配双引号的起始位置
  • \([^"]*\):这是一个捕获组,[^"]表示匹配除了双引号之外的任意字符,*表示可以匹配零个或多个这类字符,这样就能准确抓住引号里的所有内容
  • "quiz \1":替换后的内容,\1代表刚才捕获组里抓取到的原内容(也就是例子里的testabc),前面加上quiz 就完美实现了在引号内开头添加内容的需求

如果你的文件里有多个类似key="value"格式的行,这个命令会对所有符合格式的行生效哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:35:43