Regex sed:有选择地更改/保留正则表达式匹配的大小写(反向引用)?

Regex sed:有选择地更改/保留正则表达式匹配的大小写(反向引用)?,regex,sed,case-sensitive,backreference,Regex,Sed,Case Sensitive,Backreference,我一直无法找到在使用“sed”时如何限制更改特定缓冲输出的字符大小写。例如,在下面的“sed”命令中,我选择了两个文本跨距作为缓冲区保存,以便在substation期间重复使用: sed -ri 's/^<div class="line" data-line-mode="verse"><span class="speaker"[^>]*>([^<]*)<\/span>[ ]*(.*)[ ]*$/<p class="psi"><fo

我一直无法找到在使用“sed”时如何限制更改特定缓冲输出的字符大小写。例如,在下面的“sed”命令中,我选择了两个文本跨距作为缓冲区保存,以便在substation期间重复使用:

sed -ri 's/^<div class="line" data-line-mode="verse"><span class="speaker"[^>]*>([^<]*)<\/span>[ ]*(.*)[ ]*$/<p class="psi"><font size="-1" color="green"><b>\U\1<\/b>:<\/font><br>\n\2<br>/' "$f"
sed-ri的/^]*>([^From,尝试
\E
停止由
\L
\U
启动的大小写转换:

sed -ri 's/^...$/...\U\1\E<\/b>:<\/font><br>\n\2<br>/' "$f"
                         ^^
sed-ri的/^…$/…\U\1\E:
\n\2
/“$f” ^^
+1;由于OP希望第二次匹配使用的是原始案例,
\E
是这里的解决方案;从链接页面:
\E停止由\L或\U启动的案例转换。
更简洁地说明问题:
sed-r's/(A)(b)/\U\1\2/'
<p class="psi"><font size="-1" color="green"><b>FIRST_BUFFER_OUTPUT_ALL_UPPERCASE<\/B>:<\/FONT><BR>\nSECOND_BUFFER_OUTPUT_ORIGINALCASE<BR>
sed -ri 's/^...$/...\U\1\E<\/b>:<\/font><br>\n\2<br>/' "$f"
                         ^^