1. sed 使用变量进行替换,注意使用参数 r 时,需要放在参数 i 的前面
下面这个例子是用2.txt中的版本号替换docker-compose.yml中的版本号,其中变量UPGRADE_NAME在两个文件中都有且一样
for line in `cat 2.txt` do UPGRADE_NAME=$(echo $line | awk -F ":" '{print $1}') UPGRADE_VERSION=$(echo $line | awk -F ":" '{print $2}') sed -ri "s#(.*)${UPGRADE_NAME}:(.*)#1${UPGRADE_NAME}:${UPGRADE_VERSION}#g" docker-compose.yml done
2.txt中的内容格式:registry.inhand.local/elements/ngrok:v1.0.0
docker-compose.yml中的内容格式:“多个空格” image: registry.inhand.local/elements/elms-core:v1.0.0