# If you'd like to omit non-matching lines from the result; add ';d' to the end of the expression.
sed -E 's/<font color="([^"]*)">(.*?)<\\/font>/<span style="color: $1">$2<\/span>/gm;t' <<< "<pre><font color=\"#4E9A06\"><b>alecto@styx</b></font>:<font color=\"#3465A4\"><b>~</b></font>$ ls apps
<font color=\"#4E9A06\"><b>Bitwarden-1.27.1-x86_64_a6df18330216c2546e435c5a9c5df432.AppImage</b></font>
<font color=\"#3465A4\"><b>gitkraken</b></font>
<font color=\"#4E9A06\"><b>session-desktop-linux-x86_64-1.6.7_18e4489c1ba2c40986ad03ca6522e187.AppImage</b></font>
<font color=\"#3465A4\"><b>sources</b></font>
<font color=\"#4E9A06\"><b>alecto@styx</b></font>:<font color=\"#3465A4\"><b>~</b></font>$
</pre>
"
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for SED, please visit: https://www.gnu.org/software/sed/manual/html_node/The-_0022s_0022-Command.html