egrep 是否能够输出带括号的子表达式的结果?

Is egrep able to output the results of parenthesized subexpressions?

egrep能输出括号子表达式的结果吗?

我正在使用 macOS,当我查看 grep 的手册页时,它提到了 re_format(7)。检查 man 7 re_format,我看到它确实支持带括号的子表达式并将它们记录在 pmatch array 中。

然而,目前尚不清楚如何使 egrep 以某种方式仅输出分组中带括号的子表达式。

这就是您想要做的吗(使用 GNU awk 作为第三个参数来匹配 ()):

$ cat file
aa(bb(cc(dd)(ee)ff)(gg))hh

$ awk '{ while( match([=10=],/(.*)\(([^)]*)\)(.*)/,a) ) { print ++c, a[2]; [=10=]=a[1] a[3]} print "rest:", [=10=] }' file
1 gg
2 ee
3 dd
4 ccff
5 bb
rest: aahh

否,egrep 无法输出括号子表达式的结果。