# If you'd like to omit non-matching lines from the result; add ';d' to the end of the expression.
sed -E 's/(<text xml:lang=")en">(.+?)(<\/text>)\R \1es">\3\R \1fr">\3\R \1de">\3\R \1pt">\3\R \1du">\3/<en>\2<\/en>\r\n <es>\2<\/es>\r\n <fr>\2<\/fr>\r\n <de>\2<\/de>\r\n <pt>\2<\/pt>\r\n <du>\2<\/du>/gm;t' <<< " <text xml:lang=\"en\">\"Insert Swab to Start Analysis\"</text>
<text xml:lang=\"es\"></text>
<text xml:lang=\"fr\"></text>
<text xml:lang=\"de\"></text>
<text xml:lang=\"pt\"></text>
<text xml:lang=\"du\"></text>"
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