# If you'd like to omit non-matching lines from the result; add ';d' to the end of the expression.
sed -E 's/(((<cfmail\s*)\s*(((\s+from *= *("|'))([^"']+)("|'))|((\s+to *= *("|'))([^"']+)("|'))|((\s+replyto *= *("|'))([^"']+)("|'))|((\s+failto *= *("|'))([^"']+)("|'))|((\s+cc *= *("|'))([^"']+)("|'))|((\s+bcc *= *("|'))([^"']+)("|'))|((\s+port *= *("|'))([^"']+)("|'))|((\s+server *= *("|'))([^"']+)("|'))|((\s+subject *= *("|'))([^"']+)("|'))|((\s+type *= *("|'))([^"']+)("|')))+\s*>))/<!----------------------START EQMAIL REPLACE --------------------------> <cfset local.stArgs = structNew() \/> <cfset local.stArgs['bcc'] = '$33' \/> <cfset local.stArgs['cc'] = '$28' \/> <cfset local.stArgs['failto'] = '' \/> <cfset local.stArgs['from'] = '' \/> <cfset local.stArgs['port'] = '$38' \/> <cfset local.stArgs['replyto'] = '$8<$13>' \/> <cfset local.stArgs['server'] = '$43' \/> <cfset local.stArgs['subject'] = '$48' \/> <cfset local.stArgs['to'] = '$13' \/> <cfset local.stArgs['type'] = '$53' \/> <cfsavecontent variable="local.stArgs.body"> <cfoutput> $1/g;t' <<< ""
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