I'll throw in sd as a nice sed/find-and-replace tool. Using fd + xargs + sd is a pretty good workflow if a shell glob isn't good enough to target the files you want. https://github.com/chmln/sd
Also, for a "confirm your changes" type workflow, I like git add -p after running the sd command just to review all of the changes.
#!/usr/bin/perl
# perl since it's an easy way to use an arbitrary function from stdlib
use File::Glob "bsd_glob";
for (bsd_glob("{Hello,Hi} {world,everyone}...a {demo,example}")) {
print($_."\n");
}