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

sed命令中如何同时使用行尾标识$与双引号实现变量字符串追加

sed命令中如何同时使用行尾标识$与双引号实现变量字符串追加

嗨,这个问题我之前也碰到过,核心就是shell对引号里的字符解析规则搞的鬼!

你遇到的情况很典型:

  • 用单引号sed -i 's/$/$var/' inputfile.txt时,shell不会解析单引号里的$var,所以直接把字符串$var追加到行尾了,不是你要的变量值。
  • 用双引号sed -i "s/$/$var/" inputfile.txt时,shell会先解析双引号里的内容,这里的$会被shell当成变量开头处理(比如如果没有对应变量就会被忽略),导致sed拿到的正则里没有行尾标识,自然达不到效果。

解决办法很简单,给你两种常用思路:

第一种,在双引号里把sed要用的行尾$转义一下,让shell别把它当成变量解析,留给sed处理:

sed -i "s/\$/$var/" inputfile.txt

第二种,混合使用单引号和双引号,把变量部分用双引号包裹(让shell解析变量),正则的行尾部分用单引号包裹(避免shell解析$),拼接成完整命令:

sed -i 's/$/'"$var"'/' inputfile.txt

两种方法都能完美解决你的问题,选哪种看你个人习惯就行~

备注:内容来源于stack exchange,提问作者vipin kumar soni

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 08:14:13