\0在sed中是什么意思?

What does \0 mean in sed?

我有以下代码:

echo "12. Chapter Name" | sed -n -E "s/([0-9]{2})\.[[:space:]].*//p"

它按预期打印 12,因为 </code> 指的是第一个捕获组。</p> <p>但是,如果使用 <code>[=13=] 而不是 </code>,则输出为 <code>12. Chapter Name,打印整个输入字符串。

似乎只要正则表达式找到匹配项,[=13=] 就会打印整个输入字符串。这是正确的吗?

我是 运行 Debian 10.2。

[=12=] 是整个匹配值的占位符。

请注意,在 POSIX 正则表达式模式中,捕获组索引以 1 开始,一直上升到 9。第零组是整场比赛。

另外,在 sed 中使用 &[=12=] 更常见,而且可能更便携。

echo "12. Chapter Name" | sed -n -E "s/([0-9]{2})\.[[:space:]].*/[=10=]/p"

等于

echo "12. Chapter Name" | sed -n -E "s/([0-9]{2})\.[[:space:]].*/&/p"

您可以在 Using & as the matched string 阅读更多关于 & 的信息。