Sed正则表达式,在Mac终端中提取字符串的一部分

Geu*_*uis 2 macos sed

我有像"(东西/东西)"的样本数据,我正试图提取"东西".

我在OSX的终端上这样做,我似乎无法做到这一点.

这是最后一次破碎的尝试

echo '(stuff/thing)' | sed -n 's/\((.*)\)/\1/p'
Run Code Online (Sandbox Code Playgroud)

fed*_*qui 9

我会说:

$ echo '(stuff/thing)' | sed -n 's@.*/\([^)]*\))@\1@p'
thing
Run Code Online (Sandbox Code Playgroud)

我开始说:

$ echo '(stuff/thing)' | sed -n 's@.*/@@p'
thing)
Run Code Online (Sandbox Code Playgroud)

注意我使用@sed分隔符以提高可读性.

然后,我想摆脱来自的东西).为此,我们必须捕获块\([^)]*\))并将其打印回来\1.

所以这一切都在做:

#                print the captured group
#                ^^
#                | 
   .*/\([^)]*\))@\1
#  ^^^| ^^^^^ |
#   | | ------|---- all but )
#   | |       |
#   | ^^     ^^
#   | capture group
#   |
#  everything up to a /
Run Code Online (Sandbox Code Playgroud)