我使用 Unix grep。我想知道如何用它处理命名的捕获组。
目前这就是我所拥有的:
echo "foobar" | grep -P "(?<q>.)ooba(?<w>.)"
所以理论上,我有q=f
and w=r
,但是我不知道如何使用这些变量或通过管道将它们交给下一个命令(例如 awk)。
最后,我希望得到以下结果:
f r
上面的字符串只是一个例子。捕获组可以在任何地方,可以是任意数量,打印也可以是任意顺序。我这么说是因为我不是专门寻找一种方法来提取字符串的最后一个和第一个字符,而是一种从字符串中提取尽可能多的变量的方法。我知道使用-o
, \K
or之类的技巧(?<=some text).*?(?=some other text)
,但这些只提取字符串的一部分而不是多个。