如何使用grep提取子字符串?

Ste*_*han 4 regex grep

可能重复:
从字符串中提取regexp结果并将其写入变量

这是我的命令:

grep -E'\*[[:space:]] + FIN [[:space:]] +([^]] +?)')myfile

它输出:

  • FIN(成功)

而且我希望它只输出:

成功

我grep怎么知道呢?

xsh*_*pyx 7

您可以将grep命令的输出通过管道传递给awk命令.

grep -E '*[[:space:]]+FIN[[:space:]]+([^)]+?)') myfile | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)

我不确定如何单独使用grep,因为它不是真正适合那个确切的用例.由于您位于grep所在的平台上,因此当您可以使用一个命令解决部分问题时使用管道,而另一个命令则使用另一个部分.


dog*_*ane 6

grep无法输出单个捕获组,但您可以使用sed它来代替:

sed 's/\*[[:space:]]\+FIN[[:space:]]\+(\([^)]\+\))/\1/g' file
Run Code Online (Sandbox Code Playgroud)