我创建了一张员工表。
1 Andy Account
2 Grecie HR
3 Jyorge Marketing
4 Seeya HR
5 Princy Account
6 Siya Production
这里第四名员工和第六名员工的名字相同,但拼写不同。所以我想使用 grep 命令仅显示该记录。我尝试过:
grep S[iee]ya emp
和
grep S[[i][ee]]ya emp
但没有成功。有什么解决办法吗?
答案1
[...]
|
创建一个字符类,而不是一个组,您想要使用包含or 运算符的组
grep 'S\(ee\|i\)ya' emp
将做这样一个组并找到那两条线。您还可以通过告诉 grep 使用扩展正则表达式来清理它-E
,然后您不必转义字符以使它们变得特殊
grep -E 'S(ee|i)ya' emp
答案2
您需要 OR 运算符“|”在 grep 中:
grep -E 'S(i|ee)ya' emp
4 Seeya HR
6 Siya Production
答案3
grep 'S.*ya'
似乎也有效。量词*
匹配次数为零到无限次。