Regex sed命令-命名捕获的组

Regex sed命令-命名捕获的组,regex,sed,substitution,regex-group,Regex,Sed,Substitution,Regex Group,当您使用sed和许多捕获的组(例如,将访问日志行转换为另一种格式)编写替换命令时,反向引用(例如“\3”)不是很实用 此外,如果在开始时添加另一个捕获组,则还必须更新替换模式,即向所有反向引用添加+1 那么,有没有办法在sed命令中命名捕获的组而不是使用反向引用?sed不支持命名反向引用 Perl支持它们,您可以在模式中使用相同的名称指定任意数量的命名捕获组: perl -pe 's/(?<i>b)ash|(?<i>sl)ash|(?<i>m)ash/$+{i

当您使用sed和许多捕获的组(例如,将访问日志行转换为另一种格式)编写替换命令时,反向引用(例如“\3”)不是很实用

此外,如果在开始时添加另一个捕获组,则还必须更新替换模式,即向所有反向引用添加+1


那么,有没有办法在sed命令中命名捕获的组而不是使用反向引用?

sed
不支持命名反向引用

Perl支持它们,您可以在模式中使用相同的名称指定任意数量的命名捕获组:

perl -pe 's/(?<i>b)ash|(?<i>sl)ash|(?<i>m)ash/$+{i}ong/g' <<< "bash slash mash"

参阅< /P> SED中没有这样的特性,也许您可以使用Perl来代替。您将如何将名称分配给组?考虑共享SED脚本,示例输入/输出。这将有助于读者为您提供答案

bong slong mong