sed 命令中替换值为shell变量

2024-05-12 01:38

本文主要是介绍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 替换中遇到的问题

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

这篇关于sed 命令中替换值为shell变量的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/981245

相关文章

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

一文全面详解Python变量作用域

《一文全面详解Python变量作用域》变量作用域是Python中非常重要的概念,它决定了在哪里可以访问变量,下面我将用通俗易懂的方式,结合代码示例和图表,带你全面了解Python变量作用域,需要的朋友... 目录一、什么是变量作用域?二、python的四种作用域作用域查找顺序图示三、各作用域详解1. 局部作

Java -jar命令如何运行外部依赖JAR包

《Java-jar命令如何运行外部依赖JAR包》在Java应用部署中,java-jar命令是启动可执行JAR包的标准方式,但当应用需要依赖外部JAR文件时,直接使用java-jar会面临类加载困... 目录引言:外部依赖JAR的必要性一、问题本质:类加载机制的限制1. Java -jar的默认行为2. 类加

git stash命令基本用法详解

《gitstash命令基本用法详解》gitstash是Git中一个非常有用的命令,它可以临时保存当前工作区的修改,让你可以切换到其他分支或者处理其他任务,而不需要提交这些还未完成的修改,这篇文章主要... 目录一、基本用法1. 保存当前修改(包括暂存区和工作区的内容)2. 查看保存了哪些 stash3. 恢

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb

Linux基础命令@grep、wc、管道符的使用详解

《Linux基础命令@grep、wc、管道符的使用详解》:本文主要介绍Linux基础命令@grep、wc、管道符的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录grep概念语法作用演示一演示二演示三,带选项 -nwc概念语法作用wc,不带选项-c,统计字节数-

MySQL的ALTER TABLE命令的使用解读

《MySQL的ALTERTABLE命令的使用解读》:本文主要介绍MySQL的ALTERTABLE命令的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、查看所建表的编China编程码格式2、修改表的编码格式3、修改列队数据类型4、添加列5、修改列的位置5.1、把列

Python如何判断字符串中是否包含特殊字符并替换

《Python如何判断字符串中是否包含特殊字符并替换》这篇文章主要为大家详细介绍了如何使用Python实现判断字符串中是否包含特殊字符并使用空字符串替换掉,文中的示例代码讲解详细,感兴趣的小伙伴可以了... 目录python判断字符串中是否包含特殊字符方法一:使用正则表达式方法二:手动检查特定字符Pytho

C#继承之里氏替换原则分析

《C#继承之里氏替换原则分析》:本文主要介绍C#继承之里氏替换原则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#里氏替换原则一.概念二.语法表现三.类型检查与转换总结C#里氏替换原则一.概念里氏替换原则是面向对象设计的基本原则之一:核心思想:所有引py