如何在括号内grep模式?

std*_*std -1 regex grep

这是字符串:

Usage:       xp (UUID: 30503c82-bf04-4f75-ab8f-129b8b350487)
Run Code Online (Sandbox Code Playgroud)

我想要这种模式

30503c82-bf04-4f75-ab8f-129b8b350487
Run Code Online (Sandbox Code Playgroud)

我可以使用grepsed来挑选它,使用如下:

grep \(.*\) -o | sed 's/[()]//g'
Run Code Online (Sandbox Code Playgroud)

我可以只用grep来完成这个操作吗?

Ray*_*oal 7

您可以使用

egrep 'UUID[^\)]+' -o
Run Code Online (Sandbox Code Playgroud)

其中包含示例代码生成的"UUID:"前缀.

要获得唯一ID,您可以使用

egrep '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{8}' -o
Run Code Online (Sandbox Code Playgroud)

在行动:

$ echo 'Usage:       xp (UUID: 30503c82-bf04-4f75-ab8f-129b8b350487)' | egrep '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{8}' -o
30503c82-bf04-4f75-ab8f-129b8b35
$ echo 'Usage:       xp (UUID: 30503c82-bf04-4f75-ab8f-129b8b350487)' | egrep 'UUID[^\)]+' -o
UUID: 30503c82-bf04-4f75-ab8f-129b8b350487
Run Code Online (Sandbox Code Playgroud)