# If you'd like to omit non-matching lines from the result; add ';d' to the end of the expression.
sed -E 's/(?s)(?:\G(?!\A)|<p(?:\s[^>]*)?\sclass="(?:[^"]*\s)?c01[\s"])(?:(?!<p[\s>]).)*?\K\.(?=.*?<\/p>)/$0 #/gm;t' <<< "<p class=\"c01 c02\">lorem ipsum. dolor sit. amet sed.</p>
<p class=\"c01 c02 c03 nnn>lorem ipsum. dolor sit. amet sed.</p>
<p class=\"c00 c01 c02 c03 nnn>lorem ipsum. dolor sit. amet sed.</p>
<p class=\"c00 c01-1 c02 c03 nnn>lorem ipsum. dolor sit. amet sed.</p>"
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