list
所以我有一个包含公司人员名单的文件。每行包含职位(短字符串)、年份、姓名(名字和姓氏)、薪水和国籍(三个大写字母)。它们用逗号分隔。
我想使用 grep 和 regex 找到两件事:
- 所有姓氏以 C 开头的人。
- 所有有3个名字的人
对于第一个我尝试过的:grep -E 'C\>' list
,但它只返回一个名称(奇怪)。对于第二个:grep "[[:alpha:]]\b[ ]\?[[:alpha:]]\b[]\?[[:alpha:]]" list
,但它也失败了。
答案1
\>
是单词结尾的(零长度)正则表达式,因此C\>
可能与姓氏不匹配开始带有“C”。也许你应该尝试\<C
一下。
[[:alpha:]]
火柴正好一个字符,因此这也不太可能与真实姓名匹配。您应该附加一个乘数,例如*
or +
(仅在 ERE 中?)。