通过sed将一个变量替换另外一个变量

原始文件

networks:
  default:
    ipam:
      config:
        - gateway: 10.255.3.1
          subnet: 10.255.3.0/24
      driver: default
services:
  authorization:
    depends_on:
      - database
    environment:
      ENABLE_AUTHORIZATION: ‘false‘
      JDBC_URL: jdbc:h2:tcp://database:1521/uaa;DATABASE_TO_UPPER=false;DB_CLOSE_DELAY=-1
      SEAHORSE_ADMIN_EMAIL: [email protected]
    image: seahorse-authorization:01aa3905657af84c5dd2db1b9932ebaddd446df2

现在需要将seahorse-authorization这段替换为quay-mirror.qiniu.com/deepsense_io/seahorse-authorization:1.4.3

脚本如下

#!/bin/bash
#author:jack
#date:20190813
test01=`ack seahorse-authorization docker-compose.yml | awk -F ": " ‘{print $2 $3}‘`
test02=quay-mirror.qiniu.com/deepsense_io/seahorse-authorization:1.4.3
sed "s#$test01#$test02#g" docker-compose.yml
sed ‘s/127.0.0.1/0.0.0.0/g‘ docker-compose.yml

test01是一个随机数组 test02 是一串字符
所以test02也采取为传参的形式

原文地址:https://blog.51cto.com/lovejxs/2429151

时间: 2024-10-12 22:50:56

通过sed将一个变量替换另外一个变量的相关文章

Shell函数,Shell数组,变量替换

定义函数 function 函数名 { 函数的功能体 ...... } 函数名(){ 函数的功能体 ...... } 如何调用函数 函数名 函数的使用规则? 1)先定义后调用,可以只定义不调用 2)定义放上面,调用放下面 3)函数名区分大小写 4)函数名相同,后定义的生效 5)函数名不准使用特殊符号和关健字 6)在函数体内定义的变量叫局部变量,只能在当前函数内使用 7)在函数体外定义的变量叫全局变量 8)在第二个函数里敲上第一个函数的函数名,这样可以调用第一个函数的变量 例 #!/bin/bas

怎么确定一个变量的类型

例如 int * p[10] 怎么确定这个变量的类型呢,众所周知,利用sizeof一个变量,和一个变量的类型得到的值应该是相同的. 如下: #include <stdio.h> int main(void) { int * p[10]; printf("%ld %ld\n", sizeof(p),sizeof(int * [10])); //我这里打印出来40(32位系统)告诉我们这应该是一个数组类型 return 1; } 由此函数可以看出打印出来的数据是相同的, int

系统环境变量和用户环境变量

环境变量分为系统环境变量和用户环境变量. 你所说的环境变量是指系统环境变量,对所有用户起作用 而用户环境变量只对当前用户起作用. 例如你要用java,那么你把java的bin目录加入到path变量下面,那么它就是系统环境变量,所用用户登陆,在命令行输入java都会有java的帮助信息出来.而如果你在某个用户的变量下面新建一个变量,那么它就只对这个用户有用,当你以其他用户登陆时这个变量就和不存在一样. 这个问题在linux下面就相对好理解一些,系统变量都在/etc/profile文件里面,而用户的

PHP_零基础学php_2变量、预定义变量、预定义常量、表达式、运算符、程序控制流程

1.变量 PHP中使用$后跟变量名表示一个变量,变量名区分大小写. 变量的数据类型 整数类型 浮点类型 字符串类型 布尔类型 数组类型 对象 <html> <head> <title>php</title> </head> <body> /* 整数类型:可以在php中指定的整数包括十进制.八进制.和十六进制,整形数值前可以加上符号“+”或“-” */ $i=2468;//指定一个十进制整数 $i=-2468;//指定一个十进制负数 $

Git的使用-一个分支完全替换另一个分支

之前公司git分支混乱,今天花时间整理了一下,在合并分支的时候遇到一个问题: 一个很久没有拉取远程代码的分支与master分支合并时,出现冲突之外,还会丢失文件,很头疼,然后找到了下面的方法,可以直接将一个分支替换另一个分支 git push origin develop:master -f 把本地的 develop 分支强制(-f)推送到远程 master 但是上面操作,本地的 master 分支还是旧的,通常来说应该在本地做好修改再去 push 到远端,所以我推荐如下操作 git check

PHP可变变量,预定义变量,综述,$_GET数组

可变变量 所谓可变变量,就是一个变量的名,又是一个变量. 可变变量的语法是php很特殊的语法--其它语言中少见. $v1 = "abc";    //这是一个字符串变量,其内容是字符串"abc" $abc = 10;      //这是一个普通变量,其内容是数字10 echo $$v1;      //此时,就是所谓的"可变变量" 怎么理解可变变量 1,凡是$符号出现,就会有可能理解为是一个变量 2,这里第一个"$"出现了,则

在配置环境变量时是该用系统环境变量还是用户环境变量?

环境变量分为系统环境变量和用户环境变量. 正常所说的环境变量是指系统环境变量,对所有用户起作用,而用户环境变量只对当前用户起作用,如果此电脑登入了另外个用户账号,那配置之前账号的用户环境变量就对另外个用户账号不起作用. 例如你要用java,那么你把java的bin目录加入到path变量下面,那么它就是系统环境变量,所用用户登录,在命令行(cmd)输入java都会有java的帮助信息出来.而如果你在某个用户的环境变量下面新建一个变量,那么它就只对这个用户有用,当你以其他用户登录时这个变量就和不存在

sed关于变量替换的问题

今天说一下sed变量替换的问题这个问题主要还是一个群友提问的开始我也没有做出来 [email protected]:~/pwb/tmp# echo $a 9 [email protected]:~/pwb/tmp# sed 's/1/$a/g' ^C [email protected]:~/pwb/tmp# echo 123|sed 's/1/$a/g' $a23 就像是这样带着变量的替换后来查了以下资料有一种比较简单的方法主要就是平时我们用sed的时候都是用的单引号这里替换变量就是因为bash

sed 变量替换和Linux的特殊符号大全

1 sed支持两种方式的变量替换,建议使用下面的第二种,比较简单 这样就可以给变量a赋值很多特殊字符了,比如 赋值a='!@#¥%……' sed -n 's/echo/'"$a"'/p' aased -n "s/echo/$a/p" aa 2 Linux特殊字符大全,参见链接吧 shell转义字符 字符 说明 ‘’ 单引号,硬转义,其内部所有的shell元字符.通配符都会被关掉.注意,硬转义中不允许出现’(单引号). 被单引号用括住的内容,将被视为单一字串.在引号内