sed中传递变量进行替换
sed命令中传递变量
例如:修改配置文件某一个变量的值
配置文件如下:
toney@ubantu:/mnt/hgfs/em嵌入式学习记录/shell/shell脚本常见用法$ cat common_usage.log
PRODUCT_TYPE=NGFW_V2_3
PLATFORM=x86_64
NGTOS_VERSION=v2.2.94
NGFW_PATCH_VERSION=v2.2.94
DLP_PKT_VERSION=
VERSION=NGFW_V2_3_2020-04-20
SOURCE_TAG=trunk
REVISION=				--------->尝试修改此属性的值
IS_TAG=false
OEM=TOPSEC
AUTOMAKE_USER_NAME=chen_kang
SPECIAL_UPDATE=no
SPECIAL_SOURCE_BRANCH=
SPECIAL_SOURCELIST_FILE=
HAVE_ROOT=true
IS_SM=false
HAVE_ASAN=false
ONLY_HAVE_ASAN=false
IS_BIG_PRODUCE=no
IS_VERSION_INS=no
MIN_REVISION=$version
MAX_REVISION=$version
IS_REBUILD=no
IS_KERNEL_BUILD=no
DAILY_CONFIG_UPDATE=NO
脚本函数如下:
modifyConfig(){
	FILE="common_usage.log"
	version="linux-4.1.23"
	#正常的做法
	#以”REVISION=“开始的行全部替换为”REVISION=$version“
	sed -i 's/REVISION=.*$/REVISION=$version/' $FILE
}
结果真的是替换为“REVISION=$version”…
可行的办法如下:
只需要将单引号改为双引号
#########################################################################
# File Name: common_usages.sh
# Author: Toney Sun
# mail: vip_13031075266@163.com
# Created Time: 2020年04月20日 星期一 15时03分23秒
#########################################################################
#!/bin/bash
modifyConfig(){
	FILE="common_usage.log"
	version="linux-4.1.23"
	#正常的做法-->不可行
	#以”REVISION=“开始的行全部替换为”REVISION=$version“
	#sed -i 's/REVISION=.*$/REVISION=$version/' $FILE
	#可行办法
	sed -i “s/REVISION=.*$/REVISION=$version/” $FILE
}
modifyConfig
结果如下:
PRODUCT_TYPE=NGFW_V2_3
PLATFORM=x86_64
NGTOS_VERSION=v2.2.94
NGFW_PATCH_VERSION=v2.2.94
DLP_PKT_VERSION=
VERSION=NGFW_V2_3_2020-04-20
SOURCE_TAG=trunk
REVISION=linux-4.1.23		-------------------------->Here
IS_TAG=false
OEM=TOPSEC
AUTOMAKE_USER_NAME=chen_kang
SPECIAL_UPDATE=no
SPECIAL_SOURCE_BRANCH=
SPECIAL_SOURCELIST_FILE=
HAVE_ROOT=true
IS_SM=false
HAVE_ASAN=false
ONLY_HAVE_ASAN=false
IS_BIG_PRODUCE=no
IS_VERSION_INS=no
MIN_REVISION=linux-4.1.23
MAX_REVISION=linux-4.1.23
IS_REBUILD=no
IS_KERNEL_BUILD=no
sed中传递变量进行替换的更多相关文章
- sed中引用变量
		sed 中引用变量 eval sed 's/string/$REPLACE/g' file awk 中引用变量 awk 在匹配字符串的时候,有时候需要需要引用变量. $pid= eval " ... 
- sed 中带变量的情况
		#teststr="IBM" #sed -n '/' "$teststr" '/=' testfile.txt 在sed中使用变量 通常,我们使用sed进行变量 ... 
- sed中使用变量及变量中存在特殊字符‘/’处理
		sed中使用变量,普通的处理方式无法解析变量 如当前file文件中存在字符串pedis,现将其替换为redis [root@localhost work]# cat file pedis 如下两种替换 ... 
- 如何在sed中使用变量,两种方法
		第一 在sed条件中是不认识变量取值的 sed '/$x/d' test 所以要想它能够识别变量 sed "/$x/d/" test 方法简单就是把"单引号"变 ... 
- 向docker镜像中传递变量的两种方式
		测试用到的python文件: #!/usr/bin/env python3 #conding: utf-8 from http.server import HTTPServer, BaseHTTPRe ... 
- sed中支持变量的处理方法
		1.eval sed ’s/$a/$b/’ filename2.sed "s/$a/$b/" filename3.sed ’s/’$a’/’$b’/’ filename 4.sed ... 
- sed修炼系列(四):sed中的疑难杂症
		本文目录:1 sed中使用变量和变量替换的问题2 反向引用失效问题3 "-i"选项的文件保存问题4 贪婪匹配问题5 sed命令"a"和"N" ... 
- 向Hive中传入变量的方式
		Hive向程序中传递变量的方式 暴力替换 字符串替换 正则替换 模板引擎 系统环境变量 shell环境变量:${env:varname} system系统变量:${system:varname} hi ... 
- laravel向视图传递变量
		向视图中传递变量 我们在开发web应用当中,通常都不是为了写静态页面而生的,我们需要跟数据打交道,那么这个时候,问题就来了,在一个MVC的框架中,怎么将数据传给视图呢?比如我们要在 ArticleCo ... 
随机推荐
- Hadoop 3.1.1 - 概述 - 单节点安装
			Hadoop: 单节点安装 目标 本文描述了如何安装和配置单机的 Hadoop,这样你可以使用 Hadoop MapReduce 和 Hadoop 分布式文件系统(HDFS)快速地尝试简单的操作. 前 ... 
- 关于C语言中的unsigned
			在C语言中,对unsigned做出(unsigned int)i>=0 判断,将会得到一个永真值. int i; for(i=10;i-sizeof(int)>=0;i--){ print ... 
- Linux下-LNMP环境搭建博客网站(全过程)
			通常我们所说的LNMP是指一个网站基本的组织框架,即Linux系统支持,Nginx静态服务,Mysql数据库支持以及PHP动态编程语言支持.目前Mysql数据库被Oracle数据库分析公司收购,其创始 ... 
- Sth about Educational DP Contest
			Contest Website : atcoder.jp/contests/dp \[\begin{array}{c|C|c|c} TaskNum & TaskName & Statu ... 
- JavaEE精英进阶课学习笔记《博学谷》
			JavaEE精英进阶课学习笔记<博学谷> 第1章 亿可控系统分析与设计 学习目标 了解物联网应用领域及发展现状 能够说出亿可控的核心功能 能够画出亿可控的系统架构图 能够完成亿可控环境的准 ... 
- 安装CDH6.2  agent报错
			界面报错信息提示如下: file /opt/cloudera/parcels/.flood/CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel...does not e ... 
- vue服务端渲染之nuxtjs
			前言 本篇主要针对nuxtjs中的一些重要概念整理和代码实现! 在学习vue服务端渲染之前,先搞清楚几个概念: 什么是客户端渲染(CSR) 什么是服务端渲染(SSR) CSR和SSR有什么异同 客户端 ... 
- dubbo学习实践(4)之Springboot整合Dubbo及Hystrix服务熔断降级
			1. springboot整合dubbo 在provider端,添加maven引入,修改pom.xml文件 引入springboot,版本:2.3.2.RELEASE,dubbo(org.apache ... 
- STM32启动文件详解及SystemInit函数分析(转)
			;先在RAM中分配系统使用的栈,RAM的起始地址为0x2000_0000 ;然后在RAM中分配变量使用的堆 ;然后在CODE区(flash)分配中断向量表,flash的起始地址为0x0800_0000 ... 
- 51单片机—使用PWM对直流电机调速
			文章目录 - 什么是PWM - PWM是怎么对直流电机进行调速的 - 通过定时器中断实现PWM调速 - 上代码 - 什么是PWM PWM(脉宽调制),是靠改变脉冲宽度来控制输出电压,通过改变周期来控制 ... 
