sed命令 - 命名捕获的组

时间:2018-02-27 14:44:04

标签: regex sed substitution regex-group

当您使用带有许多捕获组的 sed 编写替换命令时(例如,将访问日志行转换为另一种格式),后引用(例如“\ 3”)不太实用。 / p>

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

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

1 个答案:

答案 0 :(得分:1)

[64,2]不支持命名的反向引用。

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

sed

结果:

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

请参见demo