linux脚本sed替换变量,sed 命令中替换值为shell变量

文章目录

sed 命令中替换值为shell变量

替换基本语法

sed 中替换使用shell 变量

总结

参考文档

sed 命令中替换值为shell变量

替换基本语法

大家都是 sed 有很多用法,最多就应该是替换一些值了。让我们先回忆 sed的替换语法。

在sed 进行 替换的时候

sed -i 's/old/new/g' 1.txt

echo "hello old frank" |sed 's/old/new/g'

结果 如下:

hello new frank

sed 中替换使用shell 变量

如果 我new 是一个 shell变量 , 而我想把 old 替换成 new 变量对应的值

export new=good

echo "hello old frank" |sed 's/old/${new}/g'

结果发现 并没有正常替换, new 变量没有被正常的解析出来,而是 ${new} 当成了一个要替换的值。

hello ${new} frank

如果想把 new 换成一个 shell 一个变量

export new=good

echo "hello old frank" |sed "s/old/${new}/g"

结果如下:

hello good frank

可以看出 成功替换了。

sed 中 单引号,双引号 是有区别的.

感觉单引号并不能 解析 shell中的变量,需要用双引号才能解析。从上面的例子可以看出来。

经过 查阅一些资料

其实 用单引号也是可以的

要在 需要 修改变量的地方 放一对双引号,然后在双引号"外面 在加一对单引号'

例如下面的写法:

export new=good

echo "hello old frank" |sed 's/old/'"${new}"'/g'

总结

​ Linux中 有很多有趣好玩的命令,sed 就是其中一个,作为使用Linux 的老手,今天 被这个小问题,绊了一跤,以后还是多多总结,千万不要忽略一些小的细节。 所以 以后在 sed 中 替换使用双引号比较好,毕竟 这样写比较简单,也清晰一点。 如果替换的值就是普通的值,单引号或者说引号都是可以的。如果要替换的值为 shell 变量的值,则使用双引号 更好一些吧。

参考文档

linux中sed中用s 替换中遇到的问题

分享快乐,留住感动. 2020-04-29 22:53:24 --frank

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值