Bash 如何处理grep中的括号?

Bash 如何处理grep中的括号?,bash,grep,Bash,Grep,str具有以下模式: 1 abc (1 <something>) 如何使用egrep从str中提取?如果您只想提取,我建议grep-p(perl regex): 或者,您可以使用一个简单的awk一行程序进行此操作 awk -F"[ )]" '{print $(NF-1)}' filename 测试: RTFM,关键字是“escape”。@ivan_pozdeev还有更多,他想让grep打印一个特定的组。我缺少什么:grep-P-o'(? grep -P -o '(?<=\(

str
具有以下模式:

1 abc (1 <something>)

如何使用
egrep
str
中提取

如果您只想提取
,我建议
grep-p
(perl regex):


或者,您可以使用一个简单的
awk
一行程序进行此操作

awk -F"[ )]" '{print $(NF-1)}' filename
测试:
RTFM,关键字是“escape”。@ivan_pozdeev还有更多,他想让grep打印一个特定的组。我缺少什么:grep-P-o'(?
grep -P -o '(?<=\(1 ).*?(?=\))' INPUTFILE
egrep -o '\(1 (.*)\)' INPUTFILE

[foo@bar ~]$ grep -P -o '(?<=\(1 ).*?(?=\))' INPUTFILE
hello
shalom
hola

[foo@bar ~]$ egrep -o '\(1 (.*)\)' INPUTFILE
(1 hello)
(1 shalom)
(1 hola)
awk -F"[ )]" '{print $(NF-1)}' filename
[jaypal:~/Temp] cat filename
1 abc (1 hello)
1 abc (1 shalom)
1 abc (1 hola)

[jaypal:~/Temp] awk -F"[ )]" '{print $(NF-1)}' filename
hello
shalom
hola