2016-11-14 73 views
-1

我有这个文件。它的一些在一开始,然后是有名有姓(有人可以有2名或/和2个姓氏,但不多)查找在文件中搜索特定模式的正则表达式(Unix-Solaris)

21501 Sylvester Stallone     
21502 Tommy Lee Jones       
21503 Jean Claude Van Damme    

我必须使用grep。到目前为止,我认为这两个选项我几乎100%肯定他们都没有错,但这是一个开始。

grep -e [0-9]\{5\}[[:space:]][A-Z][a-z] 

grep '^([a-z]+)[ \s]([a-z]+)/n' 
+0

'{'和'['对shell有特殊含义,你需要把正则表达式放在引号中。 – Barmar

+0

而你的问题是... –

+0

表达式的结构应该是什么。如果一个或他们是正确的... – CODrenia

回答

1
grep -E -i '^[0-9]{5}([a-z]+){2,4}$' filename 

^锚图案到该行的开头。然后它会查找5位数字,然后是2-4个名称,每个名称前面都有一个空格。 $将它锚定到行末。

-E使得它使用扩展的正则表达式,并-i使得它不区分大小写的,所以你不必说[A-Za-z]

+0

谢谢。它使我对一切都非常清楚。祝你今天愉快! – CODrenia