Multiple Subdirectory sed Operation

The below will loop through each subdirectory from wherever you run it, then perform a sed operation on files matching the file ending.

As can be seen in the example, I’ve used this to quickly update providers across lots of Terraform modules, without having to manually update them.

# Formatted:
for directory in *; do
    for file in $directory/*.tf; do
        sed --in-place=.bak --regexp-extended 's/aws    = "2.67.0"/aws    = "3.17.0"/g' $file
    done
done

About

I'm a technology professional who's been passionate about computers since my Grandad introduced me to an Intel 386 back in the 90s when I was a kid. Those moments inspired a passion within for technology, and I've been playing around with anything with a circuit board ever since. Whenever I have a moment you can probably find me working on something computer-related, and this is where I like to write about those moments.