Unix grep を使用しています。それを使用して名前付きキャプチャ グループを処理する方法を知りたいです。
現在、これは私が持っているものです:
echo "foobar" | grep -P "(?<q>.)ooba(?<w>.)"
したがって、理論的には と がq=f
ありw=r
ますが、これらの変数を使用する方法や、パイプラインを介して次のコマンド (awk など) に渡す方法がわかりません。
最終的には、次の結果を得たいと考えています。
f r
上記の文字列は単なる例です。キャプチャ グループはどこにでもあり、任意の数である可能性があり、印刷も任意の順序である可能性があります。文字列の最後の文字と最初の文字を抽出する方法を特に探しているのではなく、文字列から必要な数の変数を抽出する方法を探しているので、これを言っています。-o
、\K
またはを使用するようなトリックは知って(?<=some text).*?(?=some other text)
いますが、これらは文字列の一部のみを抽出し、複数は抽出しません。