查找在文件中搜索特定模式的正则表达式 (Unix-Solaris)

Find a regular expression that searches for a specific pattern in a file (Unix-Solaris)

我有这个文件。它的开头是一个数字,然后是一个名字和一个姓氏(一个人可以有 2 个名字 or/and 2 个姓氏,但不能更多)

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

我必须使用 grep。到目前为止,我认为这 2 个选项我几乎 100% 确定 none 是正确的,但这是一个开始。

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

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

^ 将模式锚定到行的开头。然后它查找 5 位数字,后跟 2-4 个名称,每个名称前面都有一个 space。 $ 将其锚定到行尾。

-E 使其使用扩展的正则表达式,而 -i 使其不区分大小写,因此您无需说 [A-Za-z].