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 join命令的使用及说明

《Linuxjoin命令的使用及说明》`join`命令用于在Linux中按字段将两个文件进行连接,类似于SQL的JOIN,它需要两个文件按用于匹配的字段排序,并且第一个文件的换行符必须是LF,`jo... 目录一. 基本语法二. 数据准备三. 指定文件的连接key四.-a输出指定文件的所有行五.-o指定输出

Linux jq命令的使用解读

《Linuxjq命令的使用解读》jq是一个强大的命令行工具,用于处理JSON数据,它可以用来查看、过滤、修改、格式化JSON数据,通过使用各种选项和过滤器,可以实现复杂的JSON处理任务... 目录一. 简介二. 选项2.1.2.2-c2.3-r2.4-R三. 字段提取3.1 普通字段3.2 数组字段四.

java中ssh2执行多条命令的四种方法

《java中ssh2执行多条命令的四种方法》本文主要介绍了java中ssh2执行多条命令的四种方法,包括分号分隔、管道分隔、EOF块、脚本调用,可确保环境配置生效,提升操作效率,具有一定的参考价值,感... 目录1 使用分号隔开2 使用管道符号隔开3 使用写EOF的方式4 使用脚本的方式大家平时有没有遇到自

Linux命令rm如何删除名字以“-”开头的文件

《Linux命令rm如何删除名字以“-”开头的文件》Linux中,命令的解析机制非常灵活,它会根据命令的开头字符来判断是否需要执行命令选项,对于文件操作命令(如rm、ls等),系统默认会将命令开头的某... 目录先搞懂:为啥“-”开头的文件删不掉?两种超简单的删除方法(小白也能学会)方法1:用“--”分隔命

Python之变量命名规则详解

《Python之变量命名规则详解》Python变量命名需遵守语法规范(字母开头、不使用关键字),遵循三要(自解释、明确功能)和三不要(避免缩写、语法错误、滥用下划线)原则,确保代码易读易维护... 目录1. 硬性规则2. “三要” 原则2.1. 要体现变量的 “实际作用”,拒绝 “无意义命名”2.2. 要让

Python进行word模板内容替换的实现示例

《Python进行word模板内容替换的实现示例》本文介绍了使用Python自动化处理Word模板文档的常用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录技术背景与需求场景核心工具库介绍1.获取你的word模板内容2.正常文本内容的替换3.表格内容的

MySQL批量替换数据库字符集的实用方法(附详细代码)

《MySQL批量替换数据库字符集的实用方法(附详细代码)》当需要修改数据库编码和字符集时,通常需要对其下属的所有表及表中所有字段进行修改,下面:本文主要介绍MySQL批量替换数据库字符集的实用方法... 目录前言为什么要批量修改字符集?整体脚本脚本逻辑解析1. 设置目标参数2. 生成修改表默认字符集的语句3

SpringBoot中@Value注入静态变量方式

《SpringBoot中@Value注入静态变量方式》SpringBoot中静态变量无法直接用@Value注入,需通过setter方法,@Value(${})从属性文件获取值,@Value(#{})用... 目录项目场景解决方案注解说明1、@Value("${}")使用示例2、@Value("#{}"php

Python正则表达式匹配和替换的操作指南

《Python正则表达式匹配和替换的操作指南》正则表达式是处理文本的强大工具,Python通过re模块提供了完整的正则表达式功能,本文将通过代码示例详细介绍Python中的正则匹配和替换操作,需要的朋... 目录基础语法导入re模块基本元字符常用匹配方法1. re.match() - 从字符串开头匹配2.

Redis 的 SUBSCRIBE命令详解

《Redis的SUBSCRIBE命令详解》Redis的SUBSCRIBE命令用于订阅一个或多个频道,以便接收发送到这些频道的消息,本文给大家介绍Redis的SUBSCRIBE命令,感兴趣的朋友跟随... 目录基本语法工作原理示例消息格式相关命令python 示例Redis 的 SUBSCRIBE 命令用于订