For anybody using Hugo, you also may be interested in https://lorendb.dev/posts/fixing-hugos-rss-feed/ in which I fix Hugo's feed template to have the entire article as well as a few other niceties.
Edit: that doesn't seem to be importable. Give me a minute and I'll check manually.
Edit 2: I am unable to figure out a fix to the problem, sorry! My feed works fine for me in Tiny Tiny RSS, so I am tempted to say that it's caused by a very strict feed parser.
OK, I found the problem. I hadn't imported the proper RSS namespace thingy to provide the `<dc:creator>` tag. I've fixed that now, so you should be able to read my feed in Thunderbird!
If you're using eleventy, you should be able to just add the RSS plugin: https://www.11ty.dev/docs/plugins/rss/ and easily configure it. If you're using a theme then check to see if it already bundles this.
It's cool, nice work! And thank you for sharing it.
This is just spitballing, you've already solved problem you set out to and get full marks.
There are always many different ways to do things with bash/shell. Here, you could probably do the entire thing in AWK, which you seem to already be aware of. This might be more readable or it might not.
If this were a script someone wrote for more general usage, I'd recommend to use the unofficial "bash strict mode"[0], and make sure to check that the awk/sed calls succeed. Shell has a nasty habit of limping along as far as it can if something goes wrong along the way and it's very easy to just end up with bad output and not notice until it's too late.
Another thing I only recently discovered is envsubst, a tool that's commonly available and tailor-made for substituting variables. You could pipe a template string or pile into that instead of the repetitive calls to echo. What you have here is fine and instantly readable, but if it were three times as long it might not be so nice. Here you could use awk to extract the variables and envsubst to put them into your template.
Honestly I don't think shell is a good language for writing perfect, robust things anyway. But it's good for exactly what you're doing, though, writing something for yourself that solves a problem without spending too much time on it (although it's fine to spend a lot of time on it if you're learning and/or just enjoying yourself).
Thanks for the feedback. I haven't heard of "bash strict mode" before. Haven't heard of envsubst either. I'll make a better rss script as I learn more about scripting.