Hello, I am a newbie to Shell scripting so please forgive me for any nonsense things
My requirement:
Input file (Docker compose - yml format) has following:
version: "3.2"
services:
eurekaA:
image: dtr.abc.com/11658-us-eos/registry-service-qa:develop-4
eurekaB:
image: dtr.abc.com/11658-us-eos/registry-service-qa:develop-4
configserver:
image: dtr.abc.com/11658-us-eos/config-service-qa:develop-69
gatewayservice:
image: dtr.abc.com/11658-us-eos/gateway-service-qa:develop-26
groupcustomerservice:
image: dtr.abc.com/11658-us-eos/grpcust-service-qa:develop-149
Need to Retag all images with appending "-promote" keyword and I have following script working well until encountering a use case of repeated image name in the input file "registry-service"
Code:
========================================================================
Code:
images_to_promote=(`grep image docker-compose.yml | cut -d":" -f2,3`)
#Loop through the array and execute SED to search and replace
for i in "${images_to_promote[@]}"
do
new_Img_name="$i-promote"
echo "Updating $i ---> $new_Img_name"
eval sed -i 's#$i#$new_Img_name#g' docker-compose.yml
done
========================================================================
The Output expected is :
dtr.abc.com/11658-us-eos/registry-service-qa:develop-4-promote
dtr.abc.com/11658-us-eos/registry-service-qa:develop-4-promote
dtr.abc.com/11658-us-eos/config-service-qa:develop-69-promote
dtr.abc.com/11658-us-eos/gateway-service-qa:develop-26-promote
dtr.abc.com/11658-us-eos/groupcustomer-service-qa:develop-149-promote
But instead I get:
dtr.abc.com/11658-us-eos/registry-service-qa:develop-4
-promote-promote
dtr.abc.com/11658-us-eos/registry-service-qa:develop-4
-promote-promote
dtr.abc.com/11658-us-eos/config-service-qa:develop-69-promote
dtr.abc.com/11658-us-eos/gateway-service-qa:develop-26-promote
dtr.abc.com/11658-us-eos/groupcustomer-service-qa:develop-149-promote
I have tried exact search using \< \>
I have tried getting rid of \g to limit search for only first occurrence
But none of these are helping.
Could someone please provide me direction to achieve this ?