这是我正在解析的一段xml数据
<marc:subfield code="¿">aDLC</marc:subfield>
我需要取“¿”并用小写字母“a”替换它 结果数据应如下所示:
<marc:subfield code="a">DLC</marc:subfield>
我正在运行的sed正则表达式是:
s/"¿">([a-z])/"\1">/g
答案 0 :(得分:2)
您需要将(
和)
转义为以sed的默认(...)
风格捕获群组BRE
:
s='<marc:subfield code="¿">aDLC</marc:subfield>'
sed 's/"¿">\([a-z]\)/"\1">/g' <<< "$s"
<marc:subfield code="a">DLC</marc:subfield>
或者使用-E
扩展正则表达式并避免转义它们:
sed -E 's/"¿">([a-z])/"\1">/g' <<< "$s"