2016-11-14 75 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