String Replace in Shell with sed [RE#4]

Though 99% of the time we use a text editor like vim or nano, still knowing how to do simple string manipulations via shell commands is more than necessary. The simplest use case emerges in CI/CD pipeline where you may need to replace some placeholder with a specific text (e.g., a dynamic docker image tag). 🤖

One simple tool for this purpose is sed. For example, to replace “[tag]” with “abcdef” execute:

echo "docker push -t app:[tag]" | sed -e 's/[tag]/abcdef/g'

You can also use sed just like grep and pass a file to be used as the input stream:

sed -e 's/[tag]/abcdef/g' input-file.txt

You may add more expressions by adding any number of -e expression arguments:

sed -e 's/[tag]/abcdef/g' -e 's/[image]/app/g' input-file.txt

ℹ️ To learn more useful applications of sed have a look at this article.


About Regular Encounters
I’ve decided to record my daily encounters with professional issues on a somewhat regular basis. Not all of them are equally important/unique/intricate, but are indeed practical, real, and of course, textually minimal.