查找在文件中搜索特定模式的正则表达式 (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]
.
我有这个文件。它的开头是一个数字,然后是一个名字和一个姓氏(一个人可以有 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]
.