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 ...
随机推荐
- 浅谈vue响应式原理及发布订阅模式和观察者模式
一.Vue响应式原理 首先要了解几个概念: 数据响应式:数据模型仅仅是普通的Javascript对象,而我们修改数据时,视图会进行更新,避免了繁琐的DOM操作,提高开发效率. 双向绑定:数据改变,视图 ...
- 05.表达式目录树Expression
参考文章 https://www.cnblogs.com/xyh9039/p/12748983.html 1. 基本了解 1.1 Lambda表达式 演变过程 using System; namesp ...
- [论文阅读] LCC-NLM(局部颜色校正, 非线性mask)
[论文阅读] LCC-NLM(局部颜色校正, 非线性mask) 文章: Local color correction using non-linear masking 1. 算法原理 如下图所示为, ...
- 日志导致jvm内存溢出相关问题
生产环境日志级别为info,请看如下这行代码: LOGGER.debug("the DTO info: {}", JSON.toJSONString(DTO)); 这段代码主要有两 ...
- Shell-12-linux信号
信号类型 信号:信号是在软件层次上对中断机制的一种模拟,通过给一个进程发送信号,执行相应的处理函数 进程可以通过三种方式来响应一个信号: 1.忽略信号,即对信号不做任何处理,其中有两个信号不能忽略: ...
- MySQL-20-MySQL优化
MySQL优化哲学 1 为什么优化? 为了获得成就感? 为了证实比系统设计者更懂数据库? 为了从优化成果来证实优化者更有价值? 但通常事实证实的结果往往会和你期待相反!优化有风险,涉足需谨慎! 2 优 ...
- one_gadget的一些姿势
概要 one_gadget是libc中存在的一些执行execve("/bin/sh", NULL, NULL)的片段,当可以泄露libc地址,并且可以知道libc版本的时候,可以使 ...
- 尝试通过 JDBC 将 UTF-8 插入 MySQL 时出现“乱码”
这是我的连接设置方式: Connection conn = DriverManager.getConnection(url + dbName + "?useUnicode=true& ...
- idea的properties文件乱码问题解决
设置编码格式: File============>Settings,打开设置后,设置成下面的即可解决:
- windows上python3安装
下载python 下载地址 https://www.python.org/downloads/windows/ 安装python 1.添加python到环境变量 2.自定义安装 3.下一步 4.选择安 ...