# If you'd like to omit non-matching lines from the result; add ';d' to the end of the expression.
sed -E 's/(?ix)
(\d+:\d\d)
\s+
.*?
\b
(
mon(?:d(?:ay?)?)
|tue(?:s(?:d(?:ay?)?)?)?
|wed(?:n(?:e(?:s(?:d(?:ay?)?)?)?)?)?
|thu(?:r(?:s(?:d(?:ay?)?)?)?)?
|fri(?:d(?:ay?)?)
|sat(?:u(?:r(?:d(?:a)?)?)?)?(?:y)?
|sun(?:d(?:ay?)?)
)
.*/$1 $2/gm;t' <<< "0:18 on Tuesday's mini
1:43 Wednesday. dang!
2:01 this Sat 😎"
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