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