本文主要是介绍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=goodecho "hello old frank" |sed 's/old/${new}/g'
结果发现 并没有正常替换, new 变量没有被正常的解析出来,而是 ${new}
当成了一个要替换的值。
hello ${new} frank
如果想把 new 换成一个 shell 一个变量
export new=goodecho "hello old frank" |sed "s/old/${new}/g"
结果如下:
hello good frank
可以看出 成功替换了。
sed 中 单引号,双引号 是有区别的.
感觉单引号并不能 解析 shell中的变量,需要用双引号才能解析。从上面的例子可以看出来。
经过 查阅一些资料
其实 用单引号也是可以的
要在 需要 修改变量的地方 放一对双引号,然后在双引号"
外面 在加一对单引号'
例如下面的写法:
export new=goodecho "hello old frank" |sed 's/old/'"${new}"'/g'
总结
Linux中 有很多有趣好玩的命令,sed 就是其中一个,作为使用Linux 的老手,今天 被这个小问题,绊了一跤,以后还是多多总结,千万不要忽略一些小的细节。 所以 以后在 sed 中 替换使用双引号比较好,毕竟 这样写比较简单,也清晰一点。 如果替换的值就是普通的值,单引号或者说引号都是可以的。如果要替换的值为 shell 变量的值,则使用双引号 更好一些吧。
参考文档
linux中sed中用s 替换中遇到的问题
这篇关于sed 命令中替换值为shell变量的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!