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